diff --git a/packages/kit/test/apps/basics/src/routes/load/+page.svelte b/packages/kit/test/apps/basics/src/routes/load/+page.svelte index 1685c738ef3e..278d28f352eb 100644 --- a/packages/kit/test/apps/basics/src/routes/load/+page.svelte +++ b/packages/kit/test/apps/basics/src/routes/load/+page.svelte @@ -7,6 +7,7 @@ fetch request fetch relative +fetch layout relative fetch credentialed fetch headers large response diff --git a/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.js b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.js new file mode 100644 index 000000000000..6b4d3b247072 --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.js @@ -0,0 +1,5 @@ +/** @type {import('./$types').LayoutLoad} */ +export async function load({ fetch }) { + const res = await fetch('./data.json'); + return await res.json(); +} diff --git a/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.svelte b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.svelte new file mode 100644 index 000000000000..4fa864ce7aa9 --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/+layout.svelte @@ -0,0 +1 @@ + diff --git a/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/a/b/c/+page.svelte b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/a/b/c/+page.svelte new file mode 100644 index 000000000000..c890e7840e38 --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/a/b/c/+page.svelte @@ -0,0 +1,6 @@ + + +

the answer is {data.answer}

diff --git a/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/data.json/+server.js b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/data.json/+server.js new file mode 100644 index 000000000000..8cc433e6ef8b --- /dev/null +++ b/packages/kit/test/apps/basics/src/routes/load/fetch-layout-relative/data.json/+server.js @@ -0,0 +1,6 @@ +import { json } from '@sveltejs/kit'; + +/** @type {import('./$types').RequestHandler} */ +export function GET() { + return json({ answer: 42 }); +} diff --git a/packages/kit/test/apps/basics/test/test.js b/packages/kit/test/apps/basics/test/test.js index d46e73f175ce..ecda76a0be0e 100644 --- a/packages/kit/test/apps/basics/test/test.js +++ b/packages/kit/test/apps/basics/test/test.js @@ -761,6 +761,12 @@ test.describe('Load', () => { expect(await page.textContent('h2')).toBe('the question was ?'); }); + test('fetch resolves relative to layout', async ({ page, clicknav }) => { + await page.goto('/load'); + await clicknav('[href="/load/fetch-layout-relative/a/b/c"]'); + expect(await page.textContent('h1')).toBe('the answer is 42'); + }); + test('handles large responses', async ({ page }) => { await page.goto('/load');