Skip to content

Commit 4b4c228

Browse files
committed
test(migrate): regenerate @vitest/* catalog snaps and add varlet #10 regression
Part 2 flips declared @vitest/* providers and coverage packages from concrete pins to `catalog:` (with the catalog gaining the entries); regenerate the migration global snaps that shift so the CI diff check passes. Add a unit regression for the varlet #10 shape: a catalog using legacy vite-plus-test wrapper aliases keeps its `catalog:` refs while the catalog entries are rewritten to upstream. Claude-Session: https://claude.ai/code/session_01DQhS6o1fyQd1yjiee6W8jR
1 parent 6ad2ffb commit 4b4c228

6 files changed

Lines changed: 78 additions & 5 deletions

File tree

  • packages/cli

packages/cli/snap-tests-global/migration-from-vitest-files/snap.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
"prepare": "vp config"
1616
},
1717
"devDependencies": {
18-
"@vitest/browser-playwright": "<semver>",
18+
"@vitest/browser-playwright": "catalog:",
1919
"vite": "catalog:",
2020
"vitest": "catalog:",
2121
"playwright": "*",
@@ -35,6 +35,7 @@ catalog:
3535
vite: npm:@voidzero-dev/vite-plus-core@<semver>
3636
vitest: <semver>
3737
vite-plus: <semver>
38+
'@vitest/browser-playwright': <semver>
3839
overrides:
3940
vite: 'catalog:'
4041
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-merge-vite-config-ts/snap.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ export default defineConfig({
7474
},
7575
"devDependencies": {
7676
"@vitejs/plugin-react": "^4.2.0",
77-
"@vitest/browser-playwright": "<semver>",
77+
"@vitest/browser-playwright": "catalog:",
7878
"vite": "catalog:",
7979
"vitest": "catalog:",
8080
"playwright": "*",
@@ -94,6 +94,7 @@ catalog:
9494
vite: npm:@voidzero-dev/vite-plus-core@<semver>
9595
vitest: <semver>
9696
vite-plus: <semver>
97+
'@vitest/browser-playwright': <semver>
9798
overrides:
9899
vite: 'catalog:'
99100
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-upgrade-monorepo-vitest-localized-pnpm/snap.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
{
2828
"name": "app",
2929
"devDependencies": {
30-
"@vitest/ui": "<semver>",
30+
"@vitest/ui": "catalog:",
3131
"vite": "catalog:",
3232
"vite-plus": "catalog:",
3333
"vitest": "catalog:"
@@ -41,6 +41,7 @@ catalog:
4141
vite: npm:@voidzero-dev/vite-plus-core@<semver>
4242
vite-plus: <semver>
4343
vitest: <semver>
44+
'@vitest/ui': <semver>
4445
overrides:
4546
vite: 'catalog:'
4647
vitest: 'catalog:'

packages/cli/snap-tests-global/migration-upgrade-pkg-pr-new-pnpm/snap.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
{
1313
"name": "migration-upgrade-pkg-pr-new-pnpm",
1414
"devDependencies": {
15-
"@vitest/coverage-v8": "4.1.9",
15+
"@vitest/coverage-v8": "catalog:",
1616
"vite": "catalog:",
1717
"vite-plus": "catalog:",
1818
"vitest": "catalog:"
@@ -30,6 +30,7 @@ catalog:
3030
vite: npm:@voidzero-dev/vite-plus-core@<semver>
3131
vite-plus: <semver>
3232
vitest: <semver>
33+
'@vitest/coverage-v8': <semver>
3334

3435
overrides:
3536
vite: 'catalog:'

packages/cli/snap-tests-global/migration-upgrade-vitest-exact-peer-yarn4/snap.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
{
1616
"name": "migration-upgrade-vitest-exact-peer-yarn4",
1717
"devDependencies": {
18-
"@vitest/ui": "<semver>",
18+
"@vitest/ui": "catalog:",
1919
"vite-plus": "catalog:",
2020
"vitest": "catalog:"
2121
},
@@ -38,6 +38,7 @@ catalog:
3838
vite: npm:@voidzero-dev/vite-plus-core@<semver>
3939
vite-plus: <semver>
4040
vitest: <semver>
41+
'@vitest/ui': <semver>
4142
npmPreapprovedPackages:
4243
- vitest
4344
- '@vitest/*'

packages/cli/src/migration/__tests__/migrator.spec.ts

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2328,6 +2328,74 @@ describe('ensureVitePlusBootstrap', () => {
23282328
).toBe(false);
23292329
});
23302330

2331+
it('keeps catalog: refs and rewrites the catalog when it uses legacy wrapper aliases (varlet #10)', () => {
2332+
const appDir = path.join(tmpDir, 'packages/app');
2333+
fs.mkdirSync(appDir, { recursive: true });
2334+
fs.writeFileSync(
2335+
path.join(tmpDir, 'package.json'),
2336+
JSON.stringify({
2337+
name: 'root',
2338+
private: true,
2339+
devDependencies: { 'vite-plus': 'catalog:' },
2340+
pnpm: { overrides: { vite: 'catalog:', vitest: 'catalog:' } },
2341+
devEngines: { packageManager: { name: 'pnpm', version: '10.33.0', onFail: 'download' } },
2342+
}),
2343+
);
2344+
fs.writeFileSync(
2345+
path.join(appDir, 'package.json'),
2346+
JSON.stringify({
2347+
name: 'app',
2348+
devDependencies: {
2349+
'@vitest/coverage-istanbul': 'catalog:',
2350+
typescript: 'catalog:',
2351+
vitest: 'catalog:',
2352+
vue: 'catalog:',
2353+
},
2354+
}),
2355+
);
2356+
fs.writeFileSync(
2357+
path.join(tmpDir, 'pnpm-workspace.yaml'),
2358+
[
2359+
'packages:',
2360+
' - packages/*',
2361+
'catalog:',
2362+
' typescript: 5.6.3',
2363+
' vue: 3.5.21',
2364+
" vite: 'npm:@voidzero-dev/vite-plus-core@0.1.18'",
2365+
" vitest: 'npm:@voidzero-dev/vite-plus-test@0.1.18'",
2366+
' vite-plus: 0.1.18',
2367+
" '@vitest/coverage-istanbul': 4.1.4",
2368+
'',
2369+
].join('\n'),
2370+
);
2371+
2372+
ensureVitePlusBootstrap({
2373+
...makeWorkspaceInfo(tmpDir, PackageManager.pnpm),
2374+
isMonorepo: true,
2375+
workspacePatterns: ['packages/*'],
2376+
packages: [{ name: 'app', path: 'packages/app' }],
2377+
});
2378+
2379+
const appPkg = readJson(path.join(appDir, 'package.json')) as {
2380+
devDependencies: Record<string, string>;
2381+
};
2382+
const workspace = readYamlObject(path.join(tmpDir, 'pnpm-workspace.yaml')) as {
2383+
catalog: Record<string, string>;
2384+
};
2385+
// The vitest-ecosystem refs stay `catalog:` (catalogs are supported here — the
2386+
// sibling typescript/vue refs are untouched), rather than being inlined to a
2387+
// concrete pin.
2388+
expect(appPkg.devDependencies.vitest).toBe('catalog:');
2389+
expect(appPkg.devDependencies['@vitest/coverage-istanbul']).toBe('catalog:');
2390+
expect(appPkg.devDependencies.typescript).toBe('catalog:');
2391+
// The catalog ENTRIES are rewritten: the legacy vitest wrapper alias becomes
2392+
// upstream vitest, @vitest/coverage-istanbul aligns to it, and the vite alias
2393+
// advances to the managed core target.
2394+
expect(workspace.catalog.vitest).toBe(VITEST_VERSION);
2395+
expect(workspace.catalog['@vitest/coverage-istanbul']).toBe(VITEST_VERSION);
2396+
expect(workspace.catalog.vite).toBe('npm:@voidzero-dev/vite-plus-core@latest');
2397+
});
2398+
23312399
it('does not align deprecated @vitest/coverage-c8 to a nonexistent Vitest 4 version', () => {
23322400
fs.writeFileSync(
23332401
path.join(tmpDir, 'package.json'),

0 commit comments

Comments
 (0)