Skip to content

Commit c9b9359

Browse files
authored
test: test case for catching invalid package resolution error (#21601)
1 parent 4bba787 commit c9b9359

5 files changed

Lines changed: 45 additions & 0 deletions

File tree

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "test-dep-invalid-exports",
3+
"private": true
4+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export async function test() {
2+
try {
3+
const result = await import('test-dep-invalid-exports')
4+
return { ok: true, data: result }
5+
} catch (e) {
6+
return { ok: false, data: e }
7+
}
8+
}

packages/vite/src/node/ssr/runtime/__tests__/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
"dependencies": {
99
"@vitejs/cjs-external": "link:./fixtures/cjs-external",
1010
"@vitejs/esm-external": "link:./fixtures/esm-external",
11+
"test-dep-invalid-exports": "file:./fixtures/invalid-package/deps/test-dep-invalid-exports",
1112
"tinyspy": "2.2.0",
1213
"birpc": "^0.2.19"
1314
}

packages/vite/src/node/ssr/runtime/__tests__/server-runtime.spec.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -515,3 +515,25 @@ describe('virtual module hmr', async () => {
515515
}
516516
})
517517
})
518+
519+
describe('invalid package', async () => {
520+
const it = await createModuleRunnerTester({
521+
environments: {
522+
ssr: {
523+
resolve: {
524+
noExternal: true,
525+
},
526+
},
527+
},
528+
})
529+
530+
it('can catch resolve error on runtime', async ({ runner }) => {
531+
const mod = await runner.import('./fixtures/invalid-package/test.js')
532+
expect(await mod.test()).toMatchInlineSnapshot(`
533+
{
534+
"data": [Error: Failed to resolve entry for package "test-dep-invalid-exports". The package may have incorrect main/module/exports specified in its package.json.],
535+
"ok": false,
536+
}
537+
`)
538+
})
539+
})

pnpm-lock.yaml

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)