primevue-mirror/components/lib/confirmdialog/ConfirmDialog.spec.js

174 lines
5.6 KiB
JavaScript

import { mount } from '@vue/test-utils';
import PrimeVue from 'primevue/config';
import ConfirmDialog from './ConfirmDialog.vue';
describe('ConfirmDialog', () => {
it('should exist', async () => {
const wrapper = mount(ConfirmDialog, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
transition: false
}
},
data() {
return {
confirmation: {
message: 'Are you sure you want to proceed?',
header: 'Confirmation',
icon: 'pi pi-exclamation-triangle'
},
visible: true
};
}
});
await wrapper.vm.$nextTick();
expect(wrapper.find('.p-dialog-mask .p-dialog.p-component').exists()).toBe(true);
expect(wrapper.find('.p-dialog-title').text()).toBe('Confirmation');
expect(wrapper.find('.p-confirm-dialog-message').text()).toBe('Are you sure you want to proceed?');
await wrapper.vm.reject();
expect(wrapper.find('.p-dialog-mask .p-dialog.p-component').exists()).toBe(true);
});
it('should dialog trigger the accept function', async () => {
const wrapper = mount(ConfirmDialog, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
transition: false
}
},
data() {
return {
confirmation: {
message: 'Are you sure you want to proceed?',
header: 'Confirmation',
icon: 'pi pi-exclamation-triangle',
accept: () => {
// eslint-disable-next-line no-console
console.log('accept');
},
reject: () => {
// eslint-disable-next-line no-console
console.log('reject');
}
},
visible: true
};
}
});
await wrapper.vm.$nextTick();
const acceptTriggered = vi.spyOn(wrapper.componentVM.confirmation, 'accept');
const CDAcceptBtn = wrapper.find('.p-confirm-dialog-accept');
await CDAcceptBtn.trigger('click');
expect(acceptTriggered).toBeCalled();
});
it('should dialog trigger the reject function', async () => {
const wrapper = mount(ConfirmDialog, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
transition: false
}
},
data() {
return {
confirmation: {
message: 'Are you sure you want to proceed?',
header: 'Confirmation',
icon: 'pi pi-exclamation-triangle',
accept: () => {
// eslint-disable-next-line no-console
console.log('accept');
},
reject: () => {
// eslint-disable-next-line no-console
console.log('reject');
}
},
visible: true
};
}
});
await wrapper.vm.$nextTick();
const rejectTriggered = vi.spyOn(wrapper.componentVM.confirmation, 'reject');
const CDRejectBtn = wrapper.find('.p-confirm-dialog-reject');
await CDRejectBtn.trigger('click');
expect(rejectTriggered).toBeCalled();
});
it('should dialog close button work', async () => {
const wrapper = mount(ConfirmDialog, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
transition: false
}
},
data() {
return {
confirmation: {
message: 'Are you sure you want to proceed?',
header: 'Confirmation',
icon: 'pi pi-exclamation-triangle'
},
visible: true
};
}
});
await wrapper.vm.$nextTick();
const dialogCloseBtn = wrapper.find('.p-dialog-header-close');
await dialogCloseBtn.trigger('click');
expect(wrapper.find('.p-dialog-mask .p-dialog.p-component').exists()).toBe(true);
});
it('should position work', async () => {
const wrapper = mount(ConfirmDialog, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
transition: false
}
},
data() {
return {
confirmation: {
group: 'positionDialog',
message: 'Do you want to delete this record?',
header: 'Delete Confirmation',
icon: 'pi pi-info-circle',
position: 'bottom'
},
visible: true
};
}
});
await wrapper.vm.$nextTick();
expect(wrapper.find('.p-dialog-mask.p-dialog-bottom').exists()).toBe(true);
});
});