From fb658d00a940250d6d22b80863ad9c83abb5abb8 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 22 Feb 2026 18:03:27 +0900 Subject: [PATCH 1/3] fix: respect project resolve.conditions for externals --- .../project-a/basic.test.js | 37 +++++++++++ .../project-a/vitest.config.ts | 12 ++++ .../project-b/basic.test.js | 37 +++++++++++ .../project-b/vitest.config.ts | 7 +++ .../conditions-projects/vite.config.ts | 7 +++ test/config/test/conditions-cli.test.ts | 61 +++++++++++++++++++ test/test-utils/index.ts | 17 ++++++ 7 files changed, 178 insertions(+) create mode 100644 test/config/fixtures/conditions-projects/project-a/basic.test.js create mode 100644 test/config/fixtures/conditions-projects/project-a/vitest.config.ts create mode 100644 test/config/fixtures/conditions-projects/project-b/basic.test.js create mode 100644 test/config/fixtures/conditions-projects/project-b/vitest.config.ts create mode 100644 test/config/fixtures/conditions-projects/vite.config.ts diff --git a/test/config/fixtures/conditions-projects/project-a/basic.test.js b/test/config/fixtures/conditions-projects/project-a/basic.test.js new file mode 100644 index 000000000000..51f9acaa9170 --- /dev/null +++ b/test/config/fixtures/conditions-projects/project-a/basic.test.js @@ -0,0 +1,37 @@ +import { test, expect } from "vitest"; +import conditionCustom from "@vitest/test-dep-conditions/custom"; +import conditionModule from "@vitest/test-dep-conditions/module"; +import conditionNode from "@vitest/test-dep-conditions/node"; +import conditionDevelopment from "@vitest/test-dep-conditions/development"; +import conditionProduction from "@vitest/test-dep-conditions/production"; +import inline from "@vitest/test-dep-conditions/inline"; +import indirect from "@vitest/test-dep-conditions/indirect"; + +import { viteVersion } from "vitest/node"; +const viteMajor = Number(viteVersion.split(".")[0]); + +test("conditions", () => { + expect({ + inline, + conditionCustom, + conditionModule, + conditionNode, + conditionDevelopment, + conditionProduction, + indirect, + }).toEqual({ + inline: false, + conditionCustom: true, + conditionDevelopment: true, + conditionModule: viteMajor <= 5, + conditionNode: true, + conditionProduction: false, + indirect: { + conditionCustom: true, + conditionDevelopment: true, + conditionModule: viteMajor <= 5 && inline, + conditionNode: true, + conditionProductioin: false, + }, + }); +}); diff --git a/test/config/fixtures/conditions-projects/project-a/vitest.config.ts b/test/config/fixtures/conditions-projects/project-a/vitest.config.ts new file mode 100644 index 000000000000..68ab74dfd149 --- /dev/null +++ b/test/config/fixtures/conditions-projects/project-a/vitest.config.ts @@ -0,0 +1,12 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + define: { + "import.meta.__IS_INLINE__": "true", + }, + ssr: { + resolve: { + conditions: ["custom"], + }, + }, +}); diff --git a/test/config/fixtures/conditions-projects/project-b/basic.test.js b/test/config/fixtures/conditions-projects/project-b/basic.test.js new file mode 100644 index 000000000000..2201cd029bfd --- /dev/null +++ b/test/config/fixtures/conditions-projects/project-b/basic.test.js @@ -0,0 +1,37 @@ +import { test, expect } from "vitest"; +import conditionCustom from "@vitest/test-dep-conditions/custom"; +import conditionModule from "@vitest/test-dep-conditions/module"; +import conditionNode from "@vitest/test-dep-conditions/node"; +import conditionDevelopment from "@vitest/test-dep-conditions/development"; +import conditionProduction from "@vitest/test-dep-conditions/production"; +import inline from "@vitest/test-dep-conditions/inline"; +import indirect from "@vitest/test-dep-conditions/indirect"; + +import { viteVersion } from "vitest/node"; +const viteMajor = Number(viteVersion.split(".")[0]); + +test("conditions", () => { + expect({ + inline, + conditionCustom, + conditionModule, + conditionNode, + conditionDevelopment, + conditionProduction, + indirect, + }).toEqual({ + inline: false, + conditionCustom: false, + conditionDevelopment: true, + conditionModule: viteMajor <= 5, + conditionNode: true, + conditionProduction: false, + indirect: { + conditionCustom: false, + conditionDevelopment: true, + conditionModule: viteMajor <= 5 && inline, + conditionNode: true, + conditionProductioin: false, + }, + }); +}); diff --git a/test/config/fixtures/conditions-projects/project-b/vitest.config.ts b/test/config/fixtures/conditions-projects/project-b/vitest.config.ts new file mode 100644 index 000000000000..61bab782a713 --- /dev/null +++ b/test/config/fixtures/conditions-projects/project-b/vitest.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + define: { + "import.meta.__IS_INLINE__": "true", + }, +}); diff --git a/test/config/fixtures/conditions-projects/vite.config.ts b/test/config/fixtures/conditions-projects/vite.config.ts new file mode 100644 index 000000000000..f4f64eeff19c --- /dev/null +++ b/test/config/fixtures/conditions-projects/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from "vitest/config"; + +export default defineConfig({ + test: { + projects: ["project-a", "project-b"], + }, +}); diff --git a/test/config/test/conditions-cli.test.ts b/test/config/test/conditions-cli.test.ts index c04c436d2f11..28bf3cd2c3ec 100644 --- a/test/config/test/conditions-cli.test.ts +++ b/test/config/test/conditions-cli.test.ts @@ -102,3 +102,64 @@ test('conditions (inline indirect)', async () => { expect(stderr).toBe('') }) + +test('project resolve.conditions', async () => { + const { stderr, errorProjectTree } = await runVitest({ + root: 'fixtures/conditions-projects', + }) + expect(stderr).toMatchInlineSnapshot(` + " + ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ + + FAIL |project-a| basic.test.js > conditions + AssertionError: expected { inline: false, …(6) } to deeply equal { inline: false, …(6) } + + - Expected + + Received + + @@ -1,13 +1,13 @@ + { + - "conditionCustom": true, + + "conditionCustom": false, + "conditionDevelopment": true, + "conditionModule": false, + "conditionNode": true, + "conditionProduction": false, + "indirect": { + - "conditionCustom": true, + + "conditionCustom": false, + "conditionDevelopment": true, + "conditionModule": false, + "conditionNode": true, + "conditionProductioin": false, + }, + + ❯ basic.test.js:22:6 + 20| conditionProduction, + 21| indirect, + 22| }).toEqual({ + | ^ + 23| inline: false, + 24| conditionCustom: true, + + ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ + + " + `) + expect(errorProjectTree()).toMatchInlineSnapshot(` + { + "project-a": { + "basic.test.js": { + "conditions": [ + "expected { inline: false, …(6) } to deeply equal { inline: false, …(6) }", + ], + }, + }, + "project-b": { + "basic.test.js": { + "conditions": "passed", + }, + }, + } + `) +}) diff --git a/test/test-utils/index.ts b/test/test-utils/index.ts index 738239854376..5c4750b514c0 100644 --- a/test/test-utils/index.ts +++ b/test/test-utils/index.ts @@ -243,6 +243,9 @@ export async function runVitest( errorTree() { return buildErrorTree(ctx?.state.getTestModules() || []) }, + errorProjectTree() { + return buildErrorProjectTree(ctx?.state.getTestModules() || []) + }, testTree() { return buildTestTree(ctx?.state.getTestModules() || []) }, @@ -644,3 +647,17 @@ export function buildTestProjectTree(testModules: TestModule[], onTestCase?: (re return projectTree } + +export function buildErrorProjectTree(testModules: TestModule[]) { + const projectTree: Record> = {} + + for (const testModule of testModules) { + const projectName = testModule.project.name + projectTree[projectName] = { + ...projectTree[projectName], + ...buildErrorTree([testModule]), + } + } + + return projectTree +} From b423c94885fd01b035fe2fb4692817e85fa7b8b3 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 22 Feb 2026 18:15:11 +0900 Subject: [PATCH 2/3] fix: pool applies resolve.conditions per project --- packages/vitest/src/node/pool.ts | 66 ++++++++++--------- .../project-a/vitest.config.ts | 3 +- test/config/test/conditions-cli.test.ts | 9 +-- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/packages/vitest/src/node/pool.ts b/packages/vitest/src/node/pool.ts index 7376fbc3182e..7cb8fa65027d 100644 --- a/packages/vitest/src/node/pool.ts +++ b/packages/vitest/src/node/pool.ts @@ -138,8 +138,10 @@ export function createPool(ctx: Vitest): ProcessPool { let execArgv = projectExecArgvs.get(project) if (!execArgv) { + const conditions = resolveConditions(project) execArgv = [ ...options.execArgv, + ...conditions, ...project.config.execArgv, ] projectExecArgvs.set(project, execArgv) @@ -236,36 +238,6 @@ export function createPool(ctx: Vitest): ProcessPool { } function resolveOptions(ctx: Vitest) { - // in addition to resolve.conditions Vite also adds production/development, - // see: https://github.com/vitejs/vite/blob/af2aa09575229462635b7cbb6d248ca853057ba2/packages/vite/src/node/plugins/resolve.ts#L1056-L1080 - const viteMajor = Number(viteVersion.split('.')[0]) - - const potentialConditions = new Set(viteMajor >= 6 - ? (ctx.vite.config.ssr.resolve?.conditions ?? []) - : [ - 'production', - 'development', - ...ctx.vite.config.resolve.conditions, - ]) - - const conditions = [...potentialConditions] - .filter((condition) => { - if (condition === 'production') { - return ctx.vite.config.isProduction - } - if (condition === 'development') { - return !ctx.vite.config.isProduction - } - return true - }) - .map((condition) => { - if (viteMajor >= 6 && condition === 'development|production') { - return ctx.vite.config.isProduction ? 'production' : 'development' - } - return condition - }) - .flatMap(c => ['--conditions', c]) - // Instead of passing whole process.execArgv to the workers, pick allowed options. // Some options may crash worker, e.g. --prof, --title. nodejs/node#41103 const execArgv = process.execArgv.filter( @@ -278,7 +250,6 @@ function resolveOptions(ctx: Vitest) { const options: PoolProcessOptions = { execArgv: [ ...execArgv, - ...conditions, '--experimental-import-meta-resolve', // https://github.com/vitest-dev/vitest/issues/8896 ...((globalThis as any).Deno || process.versions.pnp ? [] : ['--require', suppressWarningsPath]), @@ -295,6 +266,39 @@ function resolveOptions(ctx: Vitest) { return options } +function resolveConditions(project: TestProject) { + // in addition to resolve.conditions Vite also adds production/development, + // see: https://github.com/vitejs/vite/blob/af2aa09575229462635b7cbb6d248ca853057ba2/packages/vite/src/node/plugins/resolve.ts#L1056-L1080 + const viteMajor = Number(viteVersion.split('.')[0]) + const viteConfig = project.vite.config + + const potentialConditions = new Set(viteMajor >= 6 + ? (viteConfig.ssr.resolve?.conditions ?? []) + : [ + 'production', + 'development', + ...(viteConfig.resolve.conditions ?? []), + ]) + + return [...potentialConditions] + .filter((condition) => { + if (condition === 'production') { + return viteConfig.isProduction + } + if (condition === 'development') { + return !viteConfig.isProduction + } + return true + }) + .map((condition) => { + if (viteMajor >= 6 && condition === 'development|production') { + return viteConfig.isProduction ? 'production' : 'development' + } + return condition + }) + .flatMap(c => ['--conditions', c]) +} + function resolveMaxWorkers(project: TestProject) { if (project.config.maxWorkers) { return project.config.maxWorkers diff --git a/test/config/fixtures/conditions-projects/project-a/vitest.config.ts b/test/config/fixtures/conditions-projects/project-a/vitest.config.ts index 68ab74dfd149..72f9fb3a6d53 100644 --- a/test/config/fixtures/conditions-projects/project-a/vitest.config.ts +++ b/test/config/fixtures/conditions-projects/project-a/vitest.config.ts @@ -1,3 +1,4 @@ +import { defaultServerConditions } from "vite"; import { defineConfig } from "vitest/config"; export default defineConfig({ @@ -6,7 +7,7 @@ export default defineConfig({ }, ssr: { resolve: { - conditions: ["custom"], + conditions: ["custom", ...defaultServerConditions.filter((c) => c !== "module")], }, }, }); diff --git a/test/config/test/conditions-cli.test.ts b/test/config/test/conditions-cli.test.ts index 28bf3cd2c3ec..4ff12b5c3427 100644 --- a/test/config/test/conditions-cli.test.ts +++ b/test/config/test/conditions-cli.test.ts @@ -117,7 +117,7 @@ test('project resolve.conditions', async () => { - Expected + Received - @@ -1,13 +1,13 @@ + @@ -1,7 +1,7 @@ { - "conditionCustom": true, + "conditionCustom": false, @@ -126,13 +126,6 @@ test('project resolve.conditions', async () => { "conditionNode": true, "conditionProduction": false, "indirect": { - - "conditionCustom": true, - + "conditionCustom": false, - "conditionDevelopment": true, - "conditionModule": false, - "conditionNode": true, - "conditionProductioin": false, - }, ❯ basic.test.js:22:6 20| conditionProduction, From e45c089d24656736b9a6c856f24c23de7ea2fabf Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Sun, 22 Feb 2026 18:47:43 +0900 Subject: [PATCH 3/3] test: avoid '@vitest/*` package --- pnpm-lock.yaml | 30 +++++++------- .../test-dep-conditions-indirect/package.json | 2 +- .../deps/test-dep-conditions/indirect.js | 10 ++--- .../deps/test-dep-conditions/package.json | 4 +- .../project-a/basic.test.js | 14 +++---- .../project-b/basic.test.js | 14 +++---- test/config/fixtures/conditions/basic.test.js | 14 +++---- test/config/package.json | 2 +- test/config/test/conditions-cli.test.ts | 41 ++----------------- 9 files changed, 49 insertions(+), 82 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9abecc6d4035..f6d5261529d9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1353,9 +1353,6 @@ importers: '@vitest/browser-webdriverio': specifier: workspace:* version: link:../../packages/browser-webdriverio - '@vitest/test-dep-conditions': - specifier: file:./deps/test-dep-conditions - version: file:test/config/deps/test-dep-conditions '@vitest/test-dep-optimizer-external': specifier: file:./deps/optimizer/external version: file:test/config/deps/optimizer/external @@ -1371,6 +1368,9 @@ importers: ssr-no-external-dep: specifier: file:./deps/vite-ssr-resolve/ssr-no-external-dep version: file:test/config/deps/vite-ssr-resolve/ssr-no-external-dep + test-dep-conditions: + specifier: file:./deps/test-dep-conditions + version: file:test/config/deps/test-dep-conditions tinyexec: specifier: ^1.0.2 version: 1.0.2 @@ -5145,12 +5145,6 @@ packages: '@vitest/test-dep-cjs@file:test/core/deps/dep-cjs': resolution: {directory: test/core/deps/dep-cjs, type: directory} - '@vitest/test-dep-conditions-indirect@file:test/config/deps/test-dep-conditions-indirect': - resolution: {directory: test/config/deps/test-dep-conditions-indirect, type: directory} - - '@vitest/test-dep-conditions@file:test/config/deps/test-dep-conditions': - resolution: {directory: test/config/deps/test-dep-conditions, type: directory} - '@vitest/test-dep-nested-cjs@file:test/core/deps/dep-nested-cjs': resolution: {directory: test/core/deps/dep-nested-cjs, type: directory} @@ -9377,6 +9371,12 @@ packages: engines: {node: '>=10'} hasBin: true + test-dep-conditions-indirect@file:test/config/deps/test-dep-conditions-indirect: + resolution: {directory: test/config/deps/test-dep-conditions-indirect, type: directory} + + test-dep-conditions@file:test/config/deps/test-dep-conditions: + resolution: {directory: test/config/deps/test-dep-conditions, type: directory} + text-decoder@1.1.1: resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} @@ -13497,12 +13497,6 @@ snapshots: '@vitest/test-dep-cjs@file:test/core/deps/dep-cjs': {} - '@vitest/test-dep-conditions-indirect@file:test/config/deps/test-dep-conditions-indirect': {} - - '@vitest/test-dep-conditions@file:test/config/deps/test-dep-conditions': - dependencies: - '@vitest/test-dep-conditions-indirect': file:test/config/deps/test-dep-conditions-indirect - '@vitest/test-dep-nested-cjs@file:test/core/deps/dep-nested-cjs': {} '@vitest/test-dep-optimizer-external@file:test/config/deps/optimizer/external': {} @@ -18519,6 +18513,12 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + test-dep-conditions-indirect@file:test/config/deps/test-dep-conditions-indirect: {} + + test-dep-conditions@file:test/config/deps/test-dep-conditions: + dependencies: + test-dep-conditions-indirect: file:test/config/deps/test-dep-conditions-indirect + text-decoder@1.1.1: dependencies: b4a: 1.6.4 diff --git a/test/config/deps/test-dep-conditions-indirect/package.json b/test/config/deps/test-dep-conditions-indirect/package.json index d291b0c3cbd1..70dfcd4469ec 100644 --- a/test/config/deps/test-dep-conditions-indirect/package.json +++ b/test/config/deps/test-dep-conditions-indirect/package.json @@ -1,5 +1,5 @@ { - "name": "@vitest/test-dep-conditions-indirect", + "name": "test-dep-conditions-indirect", "type": "module", "private": true, "exports": { diff --git a/test/config/deps/test-dep-conditions/indirect.js b/test/config/deps/test-dep-conditions/indirect.js index ad1766a01e9d..cdb4e048dd87 100644 --- a/test/config/deps/test-dep-conditions/indirect.js +++ b/test/config/deps/test-dep-conditions/indirect.js @@ -1,8 +1,8 @@ -import conditionCustom from '@vitest/test-dep-conditions-indirect/custom' -import conditionDevelopment from '@vitest/test-dep-conditions-indirect/development' -import conditionModule from '@vitest/test-dep-conditions-indirect/module' -import conditionNode from '@vitest/test-dep-conditions-indirect/node' -import conditionProductioin from '@vitest/test-dep-conditions-indirect/production' +import conditionCustom from 'test-dep-conditions-indirect/custom' +import conditionDevelopment from 'test-dep-conditions-indirect/development' +import conditionModule from 'test-dep-conditions-indirect/module' +import conditionNode from 'test-dep-conditions-indirect/node' +import conditionProductioin from 'test-dep-conditions-indirect/production' export default { conditionCustom, diff --git a/test/config/deps/test-dep-conditions/package.json b/test/config/deps/test-dep-conditions/package.json index 43bc7c1ab86d..5f6f391da16d 100644 --- a/test/config/deps/test-dep-conditions/package.json +++ b/test/config/deps/test-dep-conditions/package.json @@ -1,5 +1,5 @@ { - "name": "@vitest/test-dep-conditions", + "name": "test-dep-conditions", "type": "module", "private": true, "exports": { @@ -27,6 +27,6 @@ "./indirect": "./indirect.js" }, "dependencies": { - "@vitest/test-dep-conditions-indirect": "file:../test-dep-conditions-indirect" + "test-dep-conditions-indirect": "file:../test-dep-conditions-indirect" } } diff --git a/test/config/fixtures/conditions-projects/project-a/basic.test.js b/test/config/fixtures/conditions-projects/project-a/basic.test.js index 51f9acaa9170..caca767bfb29 100644 --- a/test/config/fixtures/conditions-projects/project-a/basic.test.js +++ b/test/config/fixtures/conditions-projects/project-a/basic.test.js @@ -1,11 +1,11 @@ import { test, expect } from "vitest"; -import conditionCustom from "@vitest/test-dep-conditions/custom"; -import conditionModule from "@vitest/test-dep-conditions/module"; -import conditionNode from "@vitest/test-dep-conditions/node"; -import conditionDevelopment from "@vitest/test-dep-conditions/development"; -import conditionProduction from "@vitest/test-dep-conditions/production"; -import inline from "@vitest/test-dep-conditions/inline"; -import indirect from "@vitest/test-dep-conditions/indirect"; +import conditionCustom from "test-dep-conditions/custom"; +import conditionModule from "test-dep-conditions/module"; +import conditionNode from "test-dep-conditions/node"; +import conditionDevelopment from "test-dep-conditions/development"; +import conditionProduction from "test-dep-conditions/production"; +import inline from "test-dep-conditions/inline"; +import indirect from "test-dep-conditions/indirect"; import { viteVersion } from "vitest/node"; const viteMajor = Number(viteVersion.split(".")[0]); diff --git a/test/config/fixtures/conditions-projects/project-b/basic.test.js b/test/config/fixtures/conditions-projects/project-b/basic.test.js index 2201cd029bfd..f6540232780d 100644 --- a/test/config/fixtures/conditions-projects/project-b/basic.test.js +++ b/test/config/fixtures/conditions-projects/project-b/basic.test.js @@ -1,11 +1,11 @@ import { test, expect } from "vitest"; -import conditionCustom from "@vitest/test-dep-conditions/custom"; -import conditionModule from "@vitest/test-dep-conditions/module"; -import conditionNode from "@vitest/test-dep-conditions/node"; -import conditionDevelopment from "@vitest/test-dep-conditions/development"; -import conditionProduction from "@vitest/test-dep-conditions/production"; -import inline from "@vitest/test-dep-conditions/inline"; -import indirect from "@vitest/test-dep-conditions/indirect"; +import conditionCustom from "test-dep-conditions/custom"; +import conditionModule from "test-dep-conditions/module"; +import conditionNode from "test-dep-conditions/node"; +import conditionDevelopment from "test-dep-conditions/development"; +import conditionProduction from "test-dep-conditions/production"; +import inline from "test-dep-conditions/inline"; +import indirect from "test-dep-conditions/indirect"; import { viteVersion } from "vitest/node"; const viteMajor = Number(viteVersion.split(".")[0]); diff --git a/test/config/fixtures/conditions/basic.test.js b/test/config/fixtures/conditions/basic.test.js index dc27e253a954..b195df404a4f 100644 --- a/test/config/fixtures/conditions/basic.test.js +++ b/test/config/fixtures/conditions/basic.test.js @@ -1,11 +1,11 @@ import { test, expect } from 'vitest'; -import conditionCustom from '@vitest/test-dep-conditions/custom'; -import conditionModule from '@vitest/test-dep-conditions/module'; -import conditionNode from '@vitest/test-dep-conditions/node'; -import conditionDevelopment from '@vitest/test-dep-conditions/development'; -import conditionProduction from '@vitest/test-dep-conditions/production'; -import inline from '@vitest/test-dep-conditions/inline'; -import indirect from '@vitest/test-dep-conditions/indirect'; +import conditionCustom from 'test-dep-conditions/custom'; +import conditionModule from 'test-dep-conditions/module'; +import conditionNode from 'test-dep-conditions/node'; +import conditionDevelopment from 'test-dep-conditions/development'; +import conditionProduction from 'test-dep-conditions/production'; +import inline from 'test-dep-conditions/inline'; +import indirect from 'test-dep-conditions/indirect'; import { viteVersion } from 'vitest/node' const viteMajor = Number(viteVersion.split('.')[0]) diff --git a/test/config/package.json b/test/config/package.json index b99cea7333ad..13d5ea706632 100644 --- a/test/config/package.json +++ b/test/config/package.json @@ -11,12 +11,12 @@ "@vitest/browser-playwright": "workspace:*", "@vitest/browser-preview": "workspace:*", "@vitest/browser-webdriverio": "workspace:*", - "@vitest/test-dep-conditions": "file:./deps/test-dep-conditions", "@vitest/test-dep-optimizer-external": "file:./deps/optimizer/external", "@vitest/test-dep-optimizer-optimized": "file:./deps/optimizer/optimized", "inline-dep": "file:./deps/vite-ssr-resolve/inline-dep", "other-dep": "file:./deps/vite-ssr-resolve/other-dep", "ssr-no-external-dep": "file:./deps/vite-ssr-resolve/ssr-no-external-dep", + "test-dep-conditions": "file:./deps/test-dep-conditions", "tinyexec": "^1.0.2", "vite": "latest", "vitest": "workspace:*" diff --git a/test/config/test/conditions-cli.test.ts b/test/config/test/conditions-cli.test.ts index 4ff12b5c3427..09a0fb96a189 100644 --- a/test/config/test/conditions-cli.test.ts +++ b/test/config/test/conditions-cli.test.ts @@ -82,7 +82,7 @@ test('conditions (inline direct)', async () => { root: 'fixtures/conditions', server: { deps: { - inline: ['@vitest/test-dep-conditions'], + inline: ['test-dep-conditions'], }, }, }) @@ -95,7 +95,7 @@ test('conditions (inline indirect)', async () => { root: 'fixtures/conditions', server: { deps: { - inline: ['@vitest/test-dep-conditions', '@vitest/test-dep-conditions-indirect'], + inline: ['test-dep-conditions', 'test-dep-conditions-indirect'], }, }, }) @@ -107,45 +107,12 @@ test('project resolve.conditions', async () => { const { stderr, errorProjectTree } = await runVitest({ root: 'fixtures/conditions-projects', }) - expect(stderr).toMatchInlineSnapshot(` - " - ⎯⎯⎯⎯⎯⎯⎯ Failed Tests 1 ⎯⎯⎯⎯⎯⎯⎯ - - FAIL |project-a| basic.test.js > conditions - AssertionError: expected { inline: false, …(6) } to deeply equal { inline: false, …(6) } - - - Expected - + Received - - @@ -1,7 +1,7 @@ - { - - "conditionCustom": true, - + "conditionCustom": false, - "conditionDevelopment": true, - "conditionModule": false, - "conditionNode": true, - "conditionProduction": false, - "indirect": { - - ❯ basic.test.js:22:6 - 20| conditionProduction, - 21| indirect, - 22| }).toEqual({ - | ^ - 23| inline: false, - 24| conditionCustom: true, - - ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/1]⎯ - - " - `) + expect(stderr).toBe('') expect(errorProjectTree()).toMatchInlineSnapshot(` { "project-a": { "basic.test.js": { - "conditions": [ - "expected { inline: false, …(6) } to deeply equal { inline: false, …(6) }", - ], + "conditions": "passed", }, }, "project-b": {