diff --git a/packages/vue-query-devtools/package.json b/packages/vue-query-devtools/package.json index 9f135bfe1d8..bd8dad300ff 100644 --- a/packages/vue-query-devtools/package.json +++ b/packages/vue-query-devtools/package.json @@ -19,6 +19,8 @@ "compile": "vue-tsc --build", "test:eslint": "eslint --concurrency=auto ./src", "test:types": "vue-tsc --build", + "test:lib": "vitest", + "test:lib:dev": "pnpm run test:lib --watch", "test:build": "publint --strict && attw --pack", "build": "pnpm run compile && vite build" }, diff --git a/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts b/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts new file mode 100644 index 00000000000..9d31e6c380e --- /dev/null +++ b/packages/vue-query-devtools/src/__tests__/VueQueryDevtools.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it, vi } from 'vitest' + +describe('VueQueryDevtools', () => { + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { VueQueryDevtools } = await import('..') + expect((VueQueryDevtools as unknown as () => null)()).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts b/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts new file mode 100644 index 00000000000..5b9dfa09e65 --- /dev/null +++ b/packages/vue-query-devtools/src/__tests__/VueQueryDevtoolsPanel.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it, vi } from 'vitest' + +describe('VueQueryDevtoolsPanel', () => { + it('should return null in non-development environments', async () => { + vi.stubEnv('NODE_ENV', 'production') + vi.resetModules() + + try { + const { VueQueryDevtoolsPanel } = await import('..') + expect((VueQueryDevtoolsPanel as unknown as () => null)()).toBeNull() + } finally { + vi.unstubAllEnvs() + vi.resetModules() + } + }) +}) diff --git a/packages/vue-query-devtools/vite.config.ts b/packages/vue-query-devtools/vite.config.ts index 7f66d0e5001..443d097a0a6 100644 --- a/packages/vue-query-devtools/vite.config.ts +++ b/packages/vue-query-devtools/vite.config.ts @@ -1,7 +1,9 @@ -import { defineConfig, mergeConfig } from 'vite' +import { defineConfig, mergeConfig } from 'vitest/config' import vue from '@vitejs/plugin-vue' import { tanstackViteConfig } from '@tanstack/vite-config' +import packageJson from './package.json' + const config = defineConfig({ plugins: [vue()], // fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660 @@ -15,6 +17,20 @@ const config = defineConfig({ }, }, }, + test: { + name: packageJson.name, + dir: './src', + watch: false, + environment: 'jsdom', + coverage: { + enabled: true, + provider: 'istanbul', + include: ['src/**/*'], + exclude: ['src/__tests__/**'], + }, + typecheck: { enabled: true }, + restoreMocks: true, + }, }) export default mergeConfig(