Skip to content

Commit 7370c2b

Browse files
committed
test: add tests for client-side handleFetch
1 parent b26d793 commit 7370c2b

File tree

16 files changed

+177
-0
lines changed

16 files changed

+177
-0
lines changed
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
.custom-out-dir
2+
!.env
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
{
2+
"name": "test-embed",
3+
"private": true,
4+
"version": "0.0.1",
5+
"scripts": {
6+
"dev": "vite dev",
7+
"build": "vite build",
8+
"preview": "vite preview",
9+
"prepare": "svelte-kit sync",
10+
"check": "svelte-kit sync && tsc && svelte-check",
11+
"test": "pnpm test:dev && pnpm test:build",
12+
"test:dev": "cross-env DEV=true playwright test",
13+
"test:build": "playwright test"
14+
},
15+
"devDependencies": {
16+
"@sveltejs/kit": "workspace:^",
17+
"@sveltejs/vite-plugin-svelte": "^5.0.1",
18+
"cross-env": "^7.0.3",
19+
"svelte": "^5.23.1",
20+
"svelte-check": "^4.1.1",
21+
"typescript": "^5.5.4",
22+
"vite": "^6.2.6"
23+
},
24+
"type": "module"
25+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { config as default } from '../../utils.js';
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1" />
6+
<link rel="icon" type="image/png" href="%sveltekit.assets%/favicon.png" />
7+
%sveltekit.head%
8+
</head>
9+
<body>
10+
<div style="display: contents">%sveltekit.body%</div>
11+
</body>
12+
</html>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
export const handleFetch = async ({ request, fetch }) => {
2+
if (request.url.startsWith(location.origin)) {
3+
request.headers.set('X-Client-Header', 'imtheclient');
4+
}
5+
6+
return await fetch(request);
7+
};
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<script>
2+
import { setup } from '../../../../setup.js';
3+
4+
setup();
5+
</script>
6+
7+
<slot />
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<a href="/load" class="navigate-to-load">load</a>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { json } from '@sveltejs/kit';
2+
3+
export function GET({ request }) {
4+
const header = request.headers.get('x-client-header') ?? 'empty';
5+
6+
return json({ header });
7+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<script>
2+
import { onMount } from 'svelte';
3+
4+
let header = $state('loading');
5+
6+
onMount(async () => {
7+
const res = await fetch('/api');
8+
const data = await res.json();
9+
header = data.header;
10+
});
11+
</script>
12+
13+
<div data-testid="header">{header}</div>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
export const load = ({ request }) => {
2+
const header = request.headers.get('x-client-header') ?? 'empty';
3+
return { header };
4+
};

0 commit comments

Comments
 (0)