From a7dcfe38e266d09929e5d68a7a06170f2bbfe570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tu=C4=9F=C3=A7e=20K=C3=BC=C3=A7=C3=BCko=C4=9Flu?= Date: Wed, 6 Apr 2022 16:36:17 +0300 Subject: [PATCH] Create Toast.spec.js --- src/components/toast/Toast.spec.js | 87 ++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/components/toast/Toast.spec.js diff --git a/src/components/toast/Toast.spec.js b/src/components/toast/Toast.spec.js new file mode 100644 index 000000000..1c5ac9985 --- /dev/null +++ b/src/components/toast/Toast.spec.js @@ -0,0 +1,87 @@ +import { mount } from '@vue/test-utils'; +import Toast from './Toast.vue'; + +describe('Toast.vue', () => { + let wrapper; + + beforeEach(() => { + wrapper = mount(Toast, { + global: { + mocks: { + $primevue: { + config: { + 'ripple': true + } + } + }, + stubs: { + teleport: true + } + }, + data() { + return { + messages: [{severity:'success', summary: 'Success Message', detail:'Message Content', life: 3000}] + } + } + }) + }); + + it('should exist', () => { + expect(wrapper.find('.p-toast.p-component').exists()).toBe(true); + expect(wrapper.find('.p-toast-message').classes()).toContain('p-toast-message-success'); + expect(wrapper.find('.p-toast-summary').text()).toBe('Success Message'); + expect(wrapper.find('.p-toast-detail').text()).toBe('Message Content'); + }); + + it('should position is changed', async () => { + await wrapper.setProps({ position: 'bottom-left' }); + + expect(wrapper.find('.p-toast.p-component').classes()).toContain('p-toast-bottom-left'); + }); + + it('should show grouped toast', async () => { + await wrapper.setProps({ group: 'br' }); + + expect(wrapper.find('.p-toast.p-component').exists()).toBe(true); + }); + + it('should close toast', async () => { + await wrapper.vm.remove({severity:'success', summary: 'Success Message', detail:'Message Content', life: 3000}); + + expect(wrapper.find('.p-toast-message').exists()).toBe(false); + }); + + it('should show multiple toast', async () => { + await wrapper.setData({ + messages: [ + {severity:'info', summary:'Message 1', detail:'Message 1 Content', life: 3000}, + {severity:'info', summary:'Message 2', detail:'Message 2 Content', life: 3000}, + {severity:'info', summary:'Message 3', detail:'Message 3 Content', life: 3000} + ] + }); + + expect(wrapper.findAll('.p-toast-message').length).toBe(3); + }); + + it('should close multiple toast', async () => { + await wrapper.setData({ + messages: [ + {severity:'info', summary:'Message 1', detail:'Message 1 Content', life: 3000}, + {severity:'info', summary:'Message 2', detail:'Message 2 Content', life: 3000}, + {severity:'info', summary:'Message 3', detail:'Message 3 Content', life: 3000} + ] + }); + + await wrapper.vm.onRemoveAllGroups(); + + expect(wrapper.findAll('.p-toast-message').length).toBe(0); + }); + + it('should close grouped toast', async () => { + await wrapper.setProps({ group: 'br' }); + + await wrapper.vm.onRemoveGroup('br'); + + expect(wrapper.findAll('.p-toast-message').length).toBe(0); + }); +}); \ No newline at end of file