From b59c74adfe0b5200f17ecde06d43b73612cc4795 Mon Sep 17 00:00:00 2001 From: archipelago Date: Wed, 17 Jun 2026 23:52:48 -0400 Subject: [PATCH] test(ui): register $ver global in vitest setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Component tests mounted without main.ts's bootstrap, so the $ver global template helper (app.config.globalProperties.$ver = displayVersion) was undefined — AppSidebar/AppHeroSection/MarketplaceAppCard tests failed with "_ctx.$ver is not a function", blocking the release gate's ui-unit-tests stage. Add a vitest setup file that mirrors main.ts via config.global.mocks and wire it into vitest.config.ts. Co-Authored-By: Claude Opus 4.8 (1M context) --- neode-ui/vitest.config.ts | 1 + neode-ui/vitest.setup.ts | 9 +++++++++ 2 files changed, 10 insertions(+) create mode 100644 neode-ui/vitest.setup.ts diff --git a/neode-ui/vitest.config.ts b/neode-ui/vitest.config.ts index fa838be1..96d9facc 100644 --- a/neode-ui/vitest.config.ts +++ b/neode-ui/vitest.config.ts @@ -12,6 +12,7 @@ export default defineConfig({ test: { environment: 'jsdom', globals: true, + setupFiles: ['./vitest.setup.ts'], root: '.', passWithNoTests: true, exclude: ['e2e/**', 'node_modules/**', '**/._*'], diff --git a/neode-ui/vitest.setup.ts b/neode-ui/vitest.setup.ts new file mode 100644 index 00000000..83409a41 --- /dev/null +++ b/neode-ui/vitest.setup.ts @@ -0,0 +1,9 @@ +import { config } from '@vue/test-utils' +import { displayVersion } from '@/utils/version' + +// The app registers `$ver` as a global template property in main.ts +// (app.config.globalProperties.$ver = displayVersion). Component tests mount +// without that bootstrap, so provide the same global here for every mounted +// component. Per-mount `global` options merge with this, so individual tests +// keep their own plugins/mocks. +config.global.mocks = { ...(config.global.mocks ?? {}), $ver: displayVersion }