From 83f9097970b78695d8b56e3f4d88c258cfd092bb Mon Sep 17 00:00:00 2001 From: Paul Valerie GOMA Date: Thu, 24 Jul 2025 02:45:57 +0200 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20test:=20added=20test=20file?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/VMessage.spec.ts | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 test/VMessage.spec.ts diff --git a/test/VMessage.spec.ts b/test/VMessage.spec.ts new file mode 100644 index 0000000..5804f37 --- /dev/null +++ b/test/VMessage.spec.ts @@ -0,0 +1,37 @@ +import { describe, it, expect } from 'vitest' +import { mount } from '@vue/test-utils' +import VMessage from '../src/components/message/VMessage.vue' + +describe('VMessage.vue', () => { + it('renders the title', () => { + const wrapper = mount(VMessage, { + props: { title: 'Test Message' } + }) + expect(wrapper.text()).toContain('Test Message') + }) + + it('shows the correct icon class for type "alert"', () => { + const wrapper = mount(VMessage, { + props: { title: 'Alert Message', type: 'alert' } + }) + const icon = wrapper.find('i') + expect(icon.classes()).toContain('ri-spam-fill') + }) + + it('shows the close button if closable is true', () => { + const wrapper = mount(VMessage, { + props: { title: 'Closable Message', closable: true } + }) + const button = wrapper.find('button[aria-label="Fermer"]') + expect(button.exists()).toBe(true) + }) + + it('emits close event when close button is clicked', async () => { + const wrapper = mount(VMessage, { + props: { title: 'Closable Message', closable: true } + }) + const button = wrapper.find('button[aria-label="Fermer"]') + await button.trigger('click') + expect(wrapper.emitted()).toHaveProperty('close') + }) +})