Skip to content

Commit 8cf6dd7

Browse files
chore: add test for scan dependencies (#980)
* chore: add test for scan dependencies * fix: actual test * fix: use vite from pkg.pr.new as a dep for scan-deps * fix: use pkg.pr.new as root vite dep * chore: add usual vite config to scan deps * fix: use patched vite version, bump deps for audit, dedupe * chore(test): add svelte4 syntax checks --------- Co-authored-by: dominikg <[email protected]>
1 parent 9be5d4b commit 8cf6dd7

File tree

19 files changed

+383
-414
lines changed

19 files changed

+383
-414
lines changed

.prettierrc.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ export default {
2424
'.changeset/pre.json',
2525
'**/vite.config.js.timestamp-*.mjs',
2626
'packages/e2e-tests/dynamic-compile-options/src/components/A.svelte',
27-
'packages/playground/big/src/pages/**' // lots of generated files
27+
'packages/playground/big/src/pages/**', // lots of generated files
28+
'packages/e2e-tests/scan-deps/src/Svelte*.svelte' // various syntax tests that require no format
2829
],
2930
options: {
3031
rangeEnd: 0

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
"svelte-eslint-parser": "^0.41.0",
5454
"typescript": "^5.5.4",
5555
"typescript-eslint": "^8.3.0",
56-
"vite": "^5.4.2",
56+
"vite": "^5.4.4",
5757
"vitest": "^2.0.5"
5858
},
5959
"lint-staged": {
@@ -74,7 +74,8 @@
7474
"@sveltejs/vite-plugin-svelte-inspector": "workspace:^",
7575
"svelte": "$svelte",
7676
"vite": "$vite",
77-
"@types/node@<=20.12.0": "20.11.5"
77+
"@types/node@<=20.12.0": "20.11.5",
78+
"send@<0.19.0": "^0.19.0"
7879
},
7980
"onlyBuiltDependencies": [
8081
"esbuild"
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import { e2eServer, getText } from '~utils';
2+
import { describe, expect, it } from 'vitest';
3+
describe('vite import scan', () => {
4+
it('should not fail to discover dependencies exported from script module', async () => {
5+
// vite logs an error if scan fails but continues, so validate no errors logged
6+
expect(
7+
e2eServer.logs.server.err.length,
8+
`unexpected errors:\n${e2eServer.logs.server.err.join('\n')}`
9+
).toBe(0);
10+
});
11+
it('should work with exports from module context', async () => {
12+
expect(await getText('#svelte5')).toBe('svelte5');
13+
expect(await getText('#svelte4double')).toBe('svelte4double');
14+
expect(await getText('#svelte4single')).toBe('svelte4single');
15+
expect(await getText('#svelte4none')).toBe('svelte4none');
16+
expect(await getText('#svelte4space')).toBe('svelte4space');
17+
});
18+
});
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<link rel="icon" type="image/png" href="/favicon.png" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<title>Vite + Svelte</title>
8+
</head>
9+
<body>
10+
<div id="app"></div>
11+
<script type="module" src="/src/main.js"></script>
12+
</body>
13+
</html>
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "e2e-tests-scan-deps",
3+
"private": true,
4+
"version": "0.0.0",
5+
"type": "module",
6+
"scripts": {
7+
"dev": "vite --force",
8+
"build": "vite build",
9+
"preview": "vite preview"
10+
},
11+
"devDependencies": {
12+
"@sveltejs/vite-plugin-svelte": "workspace:^",
13+
"svelte": "^5.0.0-next.242",
14+
"vite": "^5.4.2"
15+
}
16+
}
3.05 KB
Loading
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
import { svelte5 } from './Svelte5.svelte';
3+
import { svelte4double } from './Svelte4DoubleQuote.svelte';
4+
import { svelte4single } from './Svelte4SingleQuote.svelte';
5+
import { svelte4none } from './Svelte4NoQuote.svelte';
6+
import { svelte4space } from './Svelte4WithSpace.svelte';
7+
</script>
8+
9+
<div id="svelte5">{svelte5}</div>
10+
<div id="svelte4double">{svelte4double}</div>
11+
<div id="svelte4single">{svelte4single}</div>
12+
<div id="svelte4none">{svelte4none}</div>
13+
<div id="svelte4space">{svelte4space}</div>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- eslint-disable-next-line svelte/valid-compile -->
2+
<script context="module">
3+
export const svelte4double = 'svelte4double';
4+
</script>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- eslint-disable-next-line svelte/valid-compile -->
2+
<script context=module>
3+
export const svelte4none = 'svelte4none';
4+
</script>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<!-- eslint-disable-next-line svelte/valid-compile -->
2+
<script context='module'>
3+
export const svelte4single = 'svelte4single';
4+
</script>

0 commit comments

Comments
 (0)