// The Lucia project. // Copyright 2026-2026 DSP, inc. All rights reserved. // Authors: // imacat.yang@dsp.im (imacat), 2026/03/05 import { describe, it, expect, beforeEach, vi } from 'vitest'; import { mount } from '@vue/test-utils'; import { setActivePinia, createPinia } from 'pinia'; import ModalHeader from '@/views/AccountManagement/ModalHeader.vue'; import { useModalStore } from '@/stores/modal'; describe('ModalHeader', () => { let pinia; beforeEach(() => { pinia = createPinia(); setActivePinia(pinia); }); const mountModalHeader = (headerText = 'Test Header') => { return mount(ModalHeader, { props: { headerText }, global: { plugins: [pinia] }, }); }; it('renders header text from prop', () => { const wrapper = mountModalHeader('Account Info'); expect(wrapper.find('h1').text()).toBe('Account Info'); }); it('renders close button (X icon)', () => { const wrapper = mountModalHeader(); const img = wrapper.find('img[alt="X"]'); expect(img.exists()).toBe(true); }); it('calls closeModal when X is clicked', async () => { const wrapper = mountModalHeader(); const store = useModalStore(); store.isModalOpen = true; store.whichModal = 'SOME_MODAL'; const img = wrapper.find('img[alt="X"]'); await img.trigger('click'); // closeModal only sets isModalOpen to false; whichModal is not reset expect(store.isModalOpen).toBe(false); expect(store.whichModal).toBe('SOME_MODAL'); }); });