From: Jérôme Benoit Date: Sat, 13 Jun 2026 23:46:21 +0000 (+0200) Subject: test(ui-web): drain dynamic imports globally for async components (#1893) X-Git-Tag: cli@v4.9.0~13 X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=0eb89546c237200c00b3a607fba348d894b0b356;p=e-mobility-charging-stations-simulator.git test(ui-web): drain dynamic imports globally for async components (#1893) Add vi.dynamicImportSettled() to the global afterEach hook so pending dynamic imports (defineAsyncComponent loaders, lazy routes) settle before Vitest tears down the test environment. Prevents EnvironmentTeardownError on transitive .vue import chains observed under filtered runs (e.g. -t "should open authorize dialog"). Covers App.vue, ModernLayout.vue, and any future component using defineAsyncComponent or lazy-loaded routes. --- diff --git a/ui/web/tests/setup.ts b/ui/web/tests/setup.ts index b1a7c710..b3585e35 100644 --- a/ui/web/tests/setup.ts +++ b/ui/web/tests/setup.ts @@ -26,6 +26,7 @@ vi.mock('vue-toast-notification', () => ({ useToast: () => toastMock, })) -afterEach(() => { +afterEach(async () => { localStorage.clear() + await vi.dynamicImportSettled() }) diff --git a/ui/web/tests/unit/skins/modern/ModernLayout.test.ts b/ui/web/tests/unit/skins/modern/ModernLayout.test.ts index fab7a241..dc9ed509 100644 --- a/ui/web/tests/unit/skins/modern/ModernLayout.test.ts +++ b/ui/web/tests/unit/skins/modern/ModernLayout.test.ts @@ -364,6 +364,8 @@ describe('ModernLayout', () => { await flushPromises() // Verify dialog components exist (stubbed to true = rendered when dialog state is set) expect(wrapper.findComponent({ name: 'AuthorizeDialog' }).exists()).toBe(true) + expect(wrapper.findComponent({ name: 'SetSupervisionUrlDialog' }).exists()).toBe(true) + expect(wrapper.findComponent({ name: 'StartTransactionDialog' }).exists()).toBe(true) wrapper.unmount() }) })