From 39e4d1c5cc4f5a392b793d616d7e05a0a9ae6a16 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Thu, 24 Nov 2022 05:46:18 -0800 Subject: [PATCH 1/9] [chore] upgrade to Playwright 1.28.1 --- .changeset/nine-rivers-argue.md | 5 ++++ package.json | 2 +- packages/create-svelte/package.json | 2 +- packages/kit/package.json | 2 +- pnpm-lock.yaml | 44 +++++++++-------------------- 5 files changed, 22 insertions(+), 33 deletions(-) create mode 100644 .changeset/nine-rivers-argue.md diff --git a/.changeset/nine-rivers-argue.md b/.changeset/nine-rivers-argue.md new file mode 100644 index 000000000000..95182b40cf8a --- /dev/null +++ b/.changeset/nine-rivers-argue.md @@ -0,0 +1,5 @@ +--- +'create-svelte': patch +--- + +Upgrade to Playwright 1.28.1 diff --git a/package.json b/package.json index 063f412e0892..1083164f9b71 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@rollup/plugin-json": "^5.0.1", "@rollup/plugin-node-resolve": "^15.0.1", "@svitejs/changesets-changelog-github-compact": "^0.1.1", - "playwright": "1.25.0", + "playwright": "^1.28.1", "prettier": "^2.7.1", "rollup": "^2.79.1", "svelte": "^3.52.0", diff --git a/packages/create-svelte/package.json b/packages/create-svelte/package.json index c7f25d5abebb..4ac0ce6b86f7 100644 --- a/packages/create-svelte/package.json +++ b/packages/create-svelte/package.json @@ -15,7 +15,7 @@ "prompts": "^2.4.2" }, "devDependencies": { - "@playwright/test": "1.25.0", + "@playwright/test": "^1.28.1", "@sveltejs/kit": "workspace:*", "@types/gitignore-parser": "^0.0.0", "@types/prettier": "^2.7.1", diff --git a/packages/kit/package.json b/packages/kit/package.json index 284e433f0e41..e36129fb5e12 100644 --- a/packages/kit/package.json +++ b/packages/kit/package.json @@ -24,7 +24,7 @@ "undici": "5.12.0" }, "devDependencies": { - "@playwright/test": "1.25.0", + "@playwright/test": "^1.28.1", "@types/connect": "^3.4.35", "@types/marked": "^4.0.7", "@types/mime": "^3.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 056557421782..403c365617dd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ importers: '@rollup/plugin-json': ^5.0.1 '@rollup/plugin-node-resolve': ^15.0.1 '@svitejs/changesets-changelog-github-compact': ^0.1.1 - playwright: 1.25.0 + playwright: ^1.28.1 prettier: ^2.7.1 rollup: ^2.79.1 svelte: ^3.52.0 @@ -22,7 +22,7 @@ importers: '@rollup/plugin-json': 5.0.1_rollup@2.79.1 '@rollup/plugin-node-resolve': 15.0.1_rollup@2.79.1 '@svitejs/changesets-changelog-github-compact': 0.1.1 - playwright: 1.25.0 + playwright: 1.28.1 prettier: 2.7.1 rollup: 2.79.1 svelte: 3.53.1 @@ -199,7 +199,7 @@ importers: packages/create-svelte: specifiers: - '@playwright/test': 1.25.0 + '@playwright/test': ^1.28.1 '@sveltejs/kit': workspace:* '@types/gitignore-parser': ^0.0.0 '@types/prettier': ^2.7.1 @@ -218,7 +218,7 @@ importers: kleur: 4.1.5 prompts: 2.4.2 devDependencies: - '@playwright/test': 1.25.0 + '@playwright/test': 1.28.1 '@sveltejs/kit': link:../kit '@types/gitignore-parser': 0.0.0 '@types/prettier': 2.7.1 @@ -261,7 +261,7 @@ importers: packages/kit: specifiers: - '@playwright/test': 1.25.0 + '@playwright/test': ^1.28.1 '@sveltejs/vite-plugin-svelte': ^1.3.1 '@types/connect': ^3.4.35 '@types/cookie': ^0.5.1 @@ -301,7 +301,7 @@ importers: tiny-glob: 0.2.9 undici: 5.12.0 devDependencies: - '@playwright/test': 1.25.0 + '@playwright/test': 1.28.1 '@types/connect': 3.4.35 '@types/marked': 4.0.7 '@types/mime': 3.0.1 @@ -592,22 +592,6 @@ importers: uvu: 0.5.6 vite: 3.2.3 - packages/kit/test/prerendering/fallback: - specifiers: - '@sveltejs/kit': workspace:* - svelte: ^3.52.0 - svelte-check: ^2.9.2 - typescript: ^4.8.4 - uvu: ^0.5.6 - vite: ^3.2.1 - devDependencies: - '@sveltejs/kit': link:../../.. - svelte: 3.53.1 - svelte-check: 2.9.2_svelte@3.53.1 - typescript: 4.8.4 - uvu: 0.5.6 - vite: 3.2.3 - packages/kit/test/prerendering/options: specifiers: '@sveltejs/kit': workspace:* @@ -1075,13 +1059,13 @@ packages: fastq: 1.13.0 dev: true - /@playwright/test/1.25.0: - resolution: {integrity: sha512-j4EZhTTQI3dBeWblE21EV//swwmBtOpIrLdOIJIRv4uqsLdHgBg1z+JtTg+AeC5o2bAXIE26kDNW5A0TimG8Bg==} + /@playwright/test/1.28.1: + resolution: {integrity: sha512-xN6spdqrNlwSn9KabIhqfZR7IWjPpFK1835tFNgjrlysaSezuX8PYUwaz38V/yI8TJLG9PkAMEXoHRXYXlpTPQ==} engines: {node: '>=14'} hasBin: true dependencies: '@types/node': 18.11.9 - playwright-core: 1.25.0 + playwright-core: 1.28.1 dev: true /@polka/url/1.0.0-next.21: @@ -3411,19 +3395,19 @@ packages: find-up: 4.1.0 dev: true - /playwright-core/1.25.0: - resolution: {integrity: sha512-kZ3Jwaf3wlu0GgU0nB8UMQ+mXFTqBIFz9h1svTlNduNKjnbPXFxw7mJanLVjqxHJRn62uBfmgBj93YHidk2N5Q==} + /playwright-core/1.28.1: + resolution: {integrity: sha512-3PixLnGPno0E8rSBJjtwqTwJe3Yw72QwBBBxNoukIj3lEeBNXwbNiKrNuB1oyQgTBw5QHUhNO3SteEtHaMK6ag==} engines: {node: '>=14'} hasBin: true dev: true - /playwright/1.25.0: - resolution: {integrity: sha512-Z+pQNWI17Qx/tHhnmgMmPsptsisXpKgAnUvYv98kctlHUJaqMt2400P8kTw9vEPoC0xdxqu0JhxO7pDTmaaIKw==} + /playwright/1.28.1: + resolution: {integrity: sha512-92Sz6XBlfHlb9tK5UCDzIFAuIkHHpemA9zwUaqvo+w7sFMSmVMGmvKcbptof/eJObq63PGnMhM75x7qxhTR78Q==} engines: {node: '>=14'} hasBin: true requiresBuild: true dependencies: - playwright-core: 1.25.0 + playwright-core: 1.28.1 dev: true /polka/1.0.0-next.22: From 81726e0307486ee6b09f55f2b00b74d640403ff1 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sat, 26 Nov 2022 15:45:54 -0800 Subject: [PATCH 2/9] wait for console event --- packages/kit/test/apps/basics/test/client.test.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index 103855f3437f..a9580cc3595e 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -617,18 +617,18 @@ test.describe('Load', () => { } }); - await page.goto('/load/window-fetch/incorrect'); - expect(await page.textContent('h1')).toBe('42'); + await Promise.all([page.goto('/load/window-fetch/incorrect'), page.waitForEvent('console')]); + expect(await page.textContent('h1')).toBe('42'); expect(warnings).toContain( `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); warnings.length = 0; - await page.goto('/load/window-fetch/correct'); - expect(await page.textContent('h1')).toBe('42'); + await Promise.all([page.goto('/load/window-fetch/correct'), page.waitForEvent('console')]); + expect(await page.textContent('h1')).toBe('42'); expect(warnings).not.toContain( `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); From 510ba27c9723d929c9d930a030a909fb064ce461 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sat, 26 Nov 2022 16:21:01 -0800 Subject: [PATCH 3/9] better still --- .../kit/test/apps/basics/test/client.test.js | 27 +++++++------------ 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index a9580cc3595e..4bdece527bfa 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -608,28 +608,21 @@ test.describe('Load', () => { if (process.env.DEV) { test('using window.fetch causes a warning', async ({ page, baseURL }) => { - /** @type {string[]} */ - const warnings = []; - - page.on('console', (msg) => { - if (msg.type() === 'warning') { - warnings.push(msg.text()); - } - }); - - await Promise.all([page.goto('/load/window-fetch/incorrect'), page.waitForEvent('console')]); - + const [msg0] = await Promise.all([ + page.waitForEvent('console'), + page.goto('/load/window-fetch/incorrect') + ]); expect(await page.textContent('h1')).toBe('42'); - expect(warnings).toContain( + expect(msg0.text()).toBe( `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); - warnings.length = 0; - - await Promise.all([page.goto('/load/window-fetch/correct'), page.waitForEvent('console')]); - + const [msg1] = await Promise.all([ + page.waitForEvent('console'), + page.goto('/load/window-fetch/correct') + ]); expect(await page.textContent('h1')).toBe('42'); - expect(warnings).not.toContain( + expect(msg1.text()).toBe( `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); }); From df1b4be4d5763b596f9c9457070ca55b12c533f8 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sat, 26 Nov 2022 19:23:51 -0800 Subject: [PATCH 4/9] need to use a predicate since there are multiple console logs --- .../kit/test/apps/basics/test/client.test.js | 33 ++++++++++++------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/packages/kit/test/apps/basics/test/client.test.js b/packages/kit/test/apps/basics/test/client.test.js index 4bdece527bfa..29b706f3172a 100644 --- a/packages/kit/test/apps/basics/test/client.test.js +++ b/packages/kit/test/apps/basics/test/client.test.js @@ -608,21 +608,32 @@ test.describe('Load', () => { if (process.env.DEV) { test('using window.fetch causes a warning', async ({ page, baseURL }) => { - const [msg0] = await Promise.all([ - page.waitForEvent('console'), - page.goto('/load/window-fetch/incorrect') + await Promise.all([ + page.goto('/load/window-fetch/incorrect'), + page.waitForEvent('console', { + predicate: (message) => { + return ( + message.text() === + `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` + ); + }, + timeout: 3_000 + }) ]); expect(await page.textContent('h1')).toBe('42'); - expect(msg0.text()).toBe( - `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` - ); - const [msg1] = await Promise.all([ - page.waitForEvent('console'), - page.goto('/load/window-fetch/correct') - ]); + /** @type {string[]} */ + const warnings = []; + page.on('console', (msg) => { + if (msg.type() === 'warning') { + warnings.push(msg.text()); + } + }); + + await page.goto('/load/window-fetch/correct'); expect(await page.textContent('h1')).toBe('42'); - expect(msg1.text()).toBe( + + expect(warnings).not.toContain( `Loading ${baseURL}/load/window-fetch/data.json using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); }); From 6c5e4d044f2fcf7e6ecda69857297b80708a787f Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sat, 26 Nov 2022 23:13:42 -0800 Subject: [PATCH 5/9] stacktrace is unreliable --- packages/kit/src/runtime/client/fetcher.js | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/kit/src/runtime/client/fetcher.js b/packages/kit/src/runtime/client/fetcher.js index 552bae15eadd..81a6397c68b1 100644 --- a/packages/kit/src/runtime/client/fetcher.js +++ b/packages/kit/src/runtime/client/fetcher.js @@ -13,21 +13,10 @@ export function unlock_fetch() { } if (import.meta.env.DEV) { - let can_inspect_stack_trace = false; - - const check_stack_trace = async () => { - const stack = /** @type {string} */ (new Error().stack); - can_inspect_stack_trace = stack.includes('check_stack_trace'); - }; - - check_stack_trace(); - window.fetch = (input, init) => { const url = input instanceof Request ? input.url : input.toString(); - const stack = /** @type {string} */ (new Error().stack); - const heuristic = can_inspect_stack_trace ? stack.includes('load_node') : loading; - if (heuristic) { + if (loading) { console.warn( `Loading ${url} using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); From 5ed29e69928ac0fac50bf0f34290b4be6a6facd1 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sun, 27 Nov 2022 07:27:28 -0800 Subject: [PATCH 6/9] Revert "stacktrace is unreliable" This reverts commit 6c5e4d044f2fcf7e6ecda69857297b80708a787f. --- packages/kit/src/runtime/client/fetcher.js | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/client/fetcher.js b/packages/kit/src/runtime/client/fetcher.js index 81a6397c68b1..552bae15eadd 100644 --- a/packages/kit/src/runtime/client/fetcher.js +++ b/packages/kit/src/runtime/client/fetcher.js @@ -13,10 +13,21 @@ export function unlock_fetch() { } if (import.meta.env.DEV) { + let can_inspect_stack_trace = false; + + const check_stack_trace = async () => { + const stack = /** @type {string} */ (new Error().stack); + can_inspect_stack_trace = stack.includes('check_stack_trace'); + }; + + check_stack_trace(); + window.fetch = (input, init) => { const url = input instanceof Request ? input.url : input.toString(); + const stack = /** @type {string} */ (new Error().stack); - if (loading) { + const heuristic = can_inspect_stack_trace ? stack.includes('load_node') : loading; + if (heuristic) { console.warn( `Loading ${url} using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` ); From 6945977ceede8596521333e03cad80c9df43443d Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sun, 27 Nov 2022 07:31:00 -0800 Subject: [PATCH 7/9] solve stacktrace issue in another way --- packages/kit/src/runtime/client/fetcher.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/client/fetcher.js b/packages/kit/src/runtime/client/fetcher.js index 552bae15eadd..f53a1389d3c3 100644 --- a/packages/kit/src/runtime/client/fetcher.js +++ b/packages/kit/src/runtime/client/fetcher.js @@ -26,7 +26,10 @@ if (import.meta.env.DEV) { const url = input instanceof Request ? input.url : input.toString(); const stack = /** @type {string} */ (new Error().stack); - const heuristic = can_inspect_stack_trace ? stack.includes('load_node') : loading; + // check if fetch was called via load_node. the lock method only checks if it was called at the + // same time, but not necessarily if it was called from `load` + // we use just the filename as the method name sometimes does not appear on the CI + const heuristic = can_inspect_stack_trace ? stack.includes('src/runtime/client/client.js') : loading; if (heuristic) { console.warn( `Loading ${url} using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` From b4ea095fb87e7c39584b1a58a3b76ffdd00ee851 Mon Sep 17 00:00:00 2001 From: Ben McCann <322311+benmccann@users.noreply.github.com> Date: Sun, 27 Nov 2022 07:34:08 -0800 Subject: [PATCH 8/9] format --- packages/kit/src/runtime/client/fetcher.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/kit/src/runtime/client/fetcher.js b/packages/kit/src/runtime/client/fetcher.js index f53a1389d3c3..31cf1567804a 100644 --- a/packages/kit/src/runtime/client/fetcher.js +++ b/packages/kit/src/runtime/client/fetcher.js @@ -29,7 +29,9 @@ if (import.meta.env.DEV) { // check if fetch was called via load_node. the lock method only checks if it was called at the // same time, but not necessarily if it was called from `load` // we use just the filename as the method name sometimes does not appear on the CI - const heuristic = can_inspect_stack_trace ? stack.includes('src/runtime/client/client.js') : loading; + const heuristic = can_inspect_stack_trace + ? stack.includes('src/runtime/client/client.js') + : loading; if (heuristic) { console.warn( `Loading ${url} using \`window.fetch\`. For best results, use the \`fetch\` that is passed to your \`load\` function: https://kit.svelte.dev/docs/load#making-fetch-requests` From 5b49be8c8b75574b151d49059f5ad3ea3a3668ee Mon Sep 17 00:00:00 2001 From: Rich Harris Date: Mon, 28 Nov 2022 09:18:49 -0500 Subject: [PATCH 9/9] fix some turbo config --- turbo.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/turbo.json b/turbo.json index 7c05925f5a27..5557ded45408 100644 --- a/turbo.json +++ b/turbo.json @@ -30,6 +30,9 @@ "check": { "dependsOn": ["prepare"], "inputs": [ + "index.js", + "index.d.ts", + "ambient.d.ts", "src/**", "types/**", ".svelte-kit/types/**",