diff options
author | 2023-12-01 23:50:15 +0800 | |
---|---|---|
committer | 2023-12-01 10:50:15 -0500 | |
commit | d83991ae8b51a304405330b4af8e9cc502f9bc57 (patch) | |
tree | d47843d3be1ba225c7f46e0c5372b2da56e37c0e /packages/integrations/prefetch/test | |
parent | c47478bbf6b21973419f25234c68efb59466b368 (diff) | |
download | astro-d83991ae8b51a304405330b4af8e9cc502f9bc57.tar.gz astro-d83991ae8b51a304405330b4af8e9cc502f9bc57.tar.zst astro-d83991ae8b51a304405330b4af8e9cc502f9bc57.zip |
Remove @astrojs/prefetch integration (#9241)
Diffstat (limited to 'packages/integrations/prefetch/test')
18 files changed, 0 insertions, 655 deletions
diff --git a/packages/integrations/prefetch/test/basic-prefetch.test.js b/packages/integrations/prefetch/test/basic-prefetch.test.js deleted file mode 100644 index 5fab536aa..000000000 --- a/packages/integrations/prefetch/test/basic-prefetch.test.js +++ /dev/null @@ -1,130 +0,0 @@ -import { expect } from '@playwright/test'; -import { testFactory } from './test-utils.js'; - -const test = testFactory({ root: './fixtures/basic-prefetch/' }); - -test.describe('Basic prefetch', () => { - test.describe('dev', () => { - let devServer; - - test.beforeEach(async ({ astro }) => { - devServer = await astro.startDevServer(); - }); - - test.afterEach(async () => { - await devServer.stop(); - }); - - test.describe('prefetches rel="prefetch" links', () => { - test('skips /admin', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect(requests.includes(astro.resolveUrl('/about')), '/about was prefetched').toBeTruthy(); - expect( - requests.includes(astro.resolveUrl('/contact')), - '/contact was prefetched' - ).toBeTruthy(); - expect(requests.includes(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); - expect( - requests.filter((r) => r === astro.resolveUrl('/')).length === 1, - '/ was skipped by prefetch and only queried once' - ).toBeTruthy(); - }); - }); - - test.describe('prefetches rel="prefetch-intent" links only on hover', () => { - test('prefetches /uses on hover', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/uses')), - '/uses was not prefetched' - ).toBeFalsy(); - - await page.hover('a[href="/uses"]'); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/uses')), - '/uses was prefetched on hover' - ).toBeTruthy(); - }); - }); - }); - - test.describe('build', () => { - let previewServer; - - test.beforeEach(async ({ astro }) => { - await astro.build(); - previewServer = await astro.preview(); - }); - - // important: close preview server (free up port and connection) - test.afterEach(async () => { - await previewServer.stop(); - }); - - test.describe('prefetches rel="prefetch" links', () => { - test('skips /admin', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect(requests.includes(astro.resolveUrl('/about')), '/about was prefetched').toBeTruthy(); - expect( - requests.includes(astro.resolveUrl('/contact')), - '/contact was prefetched' - ).toBeTruthy(); - expect(requests.includes(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); - expect( - requests.filter((r) => r === astro.resolveUrl('/')).length === 1, - '/ was skipped by prefetch and only queried once' - ).toBeTruthy(); - }); - }); - - test.describe('prefetches rel="prefetch-intent" links only on hover', () => { - test('prefetches /uses on hover', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/uses')), - '/uses was not prefetched' - ).toBeFalsy(); - - await page.hover('a[href="/uses"]'); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/uses')), - '/uses was prefetched on hover' - ).toBeTruthy(); - }); - }); - }); -}); diff --git a/packages/integrations/prefetch/test/custom-selectors.test.js b/packages/integrations/prefetch/test/custom-selectors.test.js deleted file mode 100644 index b680388df..000000000 --- a/packages/integrations/prefetch/test/custom-selectors.test.js +++ /dev/null @@ -1,260 +0,0 @@ -import { expect } from '@playwright/test'; -import { testFactory } from './test-utils.js'; -import prefetch from '../dist/index.js'; - -const customSelector = 'a[href="/contact"]'; -const customIntentSelector = [ - 'a[href][rel~="custom-intent"]', - 'a[href][rel~="customer-intent"]', - 'a[href][rel~="customest-intent"]', -]; - -const test = testFactory({ - // pass custom prefetch configuration - configFile: false, - root: './fixtures/basic-prefetch/', - integrations: [ - prefetch({ - selector: customSelector, - intentSelector: customIntentSelector, - }), - ], -}); - -test.describe('Custom prefetch selectors', () => { - test.describe('dev', () => { - let devServer; - - test.beforeEach(async ({ astro }) => { - devServer = await astro.startDevServer(); - }); - - test.afterEach(async () => { - await devServer.stop(); - }); - - test.describe('prefetches links by custom selector', () => { - test('only prefetches /contact', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect(requests.includes(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); - expect( - requests.includes(astro.resolveUrl('/contact')), - '/contact was prefetched' - ).toBeTruthy(); - expect(requests.includes(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); - expect( - requests.filter((r) => r === astro.resolveUrl('/')).length === 1, - '/ was skipped by prefetch and only queried once' - ).toBeTruthy(); - }); - }); - }); - - test.describe('build', () => { - let previewServer; - - test.beforeEach(async ({ astro }) => { - await astro.build(); - previewServer = await astro.preview(); - }); - - // important: close preview server (free up port and connection) - test.afterEach(async () => { - await previewServer.stop(); - }); - - test.describe('prefetches links by custom selector', () => { - test('only prefetches /contact', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect(requests.includes(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); - expect( - requests.includes(astro.resolveUrl('/contact')), - '/contact was prefetched' - ).toBeTruthy(); - expect(requests.includes(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); - expect( - requests.filter((r) => r === astro.resolveUrl('/')).length === 1, - '/ was skipped by prefetch and only queried once' - ).toBeTruthy(); - }); - }); - }); -}); - -test.describe('Custom prefetch intent selectors', () => { - test.describe('dev', () => { - let devServer; - - test.beforeEach(async ({ astro }) => { - devServer = await astro.startDevServer(); - }); - - test.afterEach(async () => { - await devServer.stop(); - }); - - test('prefetches custom intent links only on hover if provided an array', async ({ - page, - astro, - }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was not prefetched initially' - ).toBeFalsy(); - - expect( - requests.includes(astro.resolveUrl('/conditions')), - '/conditions was not prefetched initially' - ).toBeFalsy(); - - const combinedIntentSelectors = customIntentSelector.join(','); - const intentElements = await page.$$(combinedIntentSelectors); - - for (const element of intentElements) { - await element.hover(); - } - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was prefetched on hover' - ).toBeTruthy(); - expect( - requests.includes(astro.resolveUrl('/conditions')), - '/conditions was prefetched on hover' - ).toBeTruthy(); - }); - - test('prefetches custom intent links only on hover if provided a string', async ({ - page, - astro, - }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was not prefetched initially' - ).toBeFalsy(); - - await page.hover(customIntentSelector[0]); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was prefetched on hover' - ).toBeTruthy(); - }); - }); - - test.describe('build', () => { - let previewServer; - - test.beforeEach(async ({ astro }) => { - await astro.build(); - previewServer = await astro.preview(); - }); - - // important: close preview server (free up port and connection) - test.afterEach(async () => { - await previewServer.stop(); - }); - - test('prefetches custom intent links only on hover if provided an array', async ({ - page, - astro, - }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was not prefetched initially' - ).toBeFalsy(); - - expect( - requests.includes(astro.resolveUrl('/conditions')), - '/conditions was not prefetched initially' - ).toBeFalsy(); - - const combinedIntentSelectors = customIntentSelector.join(','); - const intentElements = await page.$$(combinedIntentSelectors); - - for (const element of intentElements) { - await element.hover(); - } - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was prefetched on hover' - ).toBeTruthy(); - expect( - requests.includes(astro.resolveUrl('/conditions')), - '/conditions was prefetched on hover' - ).toBeTruthy(); - }); - - test('prefetches custom intent links only on hover if provided a string', async ({ - page, - astro, - }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was not prefetched initially' - ).toBeFalsy(); - - await page.hover(customIntentSelector[0]); - - await page.waitForLoadState('networkidle'); - - expect( - requests.includes(astro.resolveUrl('/terms')), - '/terms was prefetched on hover' - ).toBeTruthy(); - }); - }); -}); diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/astro.config.mjs b/packages/integrations/prefetch/test/fixtures/basic-prefetch/astro.config.mjs deleted file mode 100644 index 092813b22..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/astro.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'astro/config'; -import prefetch from '@astrojs/prefetch'; - -// https://astro.build/config -export default defineConfig({ - integrations: [prefetch()], -}); diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/package.json b/packages/integrations/prefetch/test/fixtures/basic-prefetch/package.json deleted file mode 100644 index cf10d7471..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@test/astro-prefetch", - "version": "0.0.0", - "private": true, - "dependencies": { - "@astrojs/prefetch": "workspace:*", - "astro": "workspace:*" - } -} diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/about.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/about.astro deleted file mode 100644 index dc2aeb8fe..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/about.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>About Us</title> -</head> -<body> - <h1>About Us</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/admin.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/admin.astro deleted file mode 100644 index 7e44fc97d..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/admin.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>Admin</title> -</head> -<body> - <h1>Admin</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/conditions.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/conditions.astro deleted file mode 100644 index 345abaa38..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/conditions.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>Conditions</title> -</head> -<body> - <h1>Conditions</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/contact.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/contact.astro deleted file mode 100644 index b565db912..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/contact.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>Contact Us</title> -</head> -<body> - <h1>Contact Us</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/index.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/index.astro deleted file mode 100644 index b78e39553..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/index.astro +++ /dev/null @@ -1,34 +0,0 @@ ---- ---- - -<html> -<head> -<title>Home</title> -</head> -<body> - <h1>Home</h1> - - <nav> - <ul> - <li> - <a href="/" rel="prefetch">Home</a> - </li> - <li> - <a href="/about" rel="prefetch">About</a> - </li> - <li> - <a href="/admin">Admin</a> - </li> - <li> - <a href="/uses" rel="prefetch-intent">Uses</a> - </li> - </ul> - </nav> - - <footer> - <a href="/contact" rel="prefetch">Contact</a> - <a href="/terms" rel="custom-intent">Terms</a> - <a href="/conditions" rel="customer-intent">Terms</a> - </footer> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/terms.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/terms.astro deleted file mode 100644 index a0fcc1004..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/terms.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>Terms</title> -</head> -<body> - <h1>Terms</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/uses.astro b/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/uses.astro deleted file mode 100644 index 15b050061..000000000 --- a/packages/integrations/prefetch/test/fixtures/basic-prefetch/src/pages/uses.astro +++ /dev/null @@ -1,11 +0,0 @@ ---- ---- - -<html> -<head> -<title>Uses</title> -</head> -<body> - <h1>Uses</h1> -</body> -</html> diff --git a/packages/integrations/prefetch/test/fixtures/style-prefetch/astro.config.mjs b/packages/integrations/prefetch/test/fixtures/style-prefetch/astro.config.mjs deleted file mode 100644 index 092813b22..000000000 --- a/packages/integrations/prefetch/test/fixtures/style-prefetch/astro.config.mjs +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'astro/config'; -import prefetch from '@astrojs/prefetch'; - -// https://astro.build/config -export default defineConfig({ - integrations: [prefetch()], -}); diff --git a/packages/integrations/prefetch/test/fixtures/style-prefetch/package.json b/packages/integrations/prefetch/test/fixtures/style-prefetch/package.json deleted file mode 100644 index dce71e357..000000000 --- a/packages/integrations/prefetch/test/fixtures/style-prefetch/package.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "name": "@test/astro-style-prefetch", - "version": "0.0.0", - "private": true, - "dependencies": { - "@astrojs/prefetch": "workspace:*", - "astro": "workspace:*" - } -} diff --git a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/index.astro b/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/index.astro deleted file mode 100644 index 9b8b84eec..000000000 --- a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/index.astro +++ /dev/null @@ -1,18 +0,0 @@ ---- ---- - -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Home</title> -</head> -<body> - <h1>Home</h1> - <ul> - <li><a href="/style1" rel="prefetch">1</a></li> - <li><a href="/style2" rel="prefetch">2</a></li> - </ul> -</body> -</html>
\ No newline at end of file diff --git a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style1.astro b/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style1.astro deleted file mode 100644 index def02918c..000000000 --- a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style1.astro +++ /dev/null @@ -1,15 +0,0 @@ ---- ---- - -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Style1</title> - <link rel="stylesheet" href="/main.css"> -</head> -<body> - <h1>Style1</h1> -</body> -</html>
\ No newline at end of file diff --git a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style2.astro b/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style2.astro deleted file mode 100644 index 2e3b6949c..000000000 --- a/packages/integrations/prefetch/test/fixtures/style-prefetch/src/pages/style2.astro +++ /dev/null @@ -1,15 +0,0 @@ ---- ---- - -<html lang="en"> -<head> - <meta charset="UTF-8"> - <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>Style2</title> - <link rel="stylesheet" href="/main.css"> -</head> -<body> - <h1>Style2</h1> -</body> -</html>
\ No newline at end of file diff --git a/packages/integrations/prefetch/test/style-prefetch.test.js b/packages/integrations/prefetch/test/style-prefetch.test.js deleted file mode 100644 index b9bb0b043..000000000 --- a/packages/integrations/prefetch/test/style-prefetch.test.js +++ /dev/null @@ -1,55 +0,0 @@ -import { expect } from '@playwright/test'; -import { testFactory } from './test-utils.js'; - -const test = testFactory({ root: './fixtures/style-prefetch/' }); - -test.describe('Style prefetch', () => { - test.describe('dev', () => { - let devServer; - - test.beforeEach(async ({ astro }) => { - devServer = await astro.startDevServer(); - }); - - test.afterEach(async () => { - await devServer.stop(); - }); - - testPrefetch(); - }); - - test.describe('build', () => { - let previewServer; - - test.beforeAll(async ({ astro }) => { - await astro.build(); - previewServer = await astro.preview(); - }); - - // important: close preview server (free up port and connection) - test.afterAll(async () => { - await previewServer.stop(); - }); - - testPrefetch(); - }); - - function testPrefetch() { - test.describe('prefetches rel="prefetch" links', () => { - test('style fetching', async ({ page, astro }) => { - const requests = []; - - page.on('request', (request) => requests.push(request.url())); - - await page.goto(astro.resolveUrl('/')); - - await page.waitForLoadState('networkidle'); - - await expect(requests.filter((req) => req.includes('/style1'))).toBeTruthy(); - await expect(requests.filter((req) => req.includes('/style2'))).toBeTruthy(); - const cssRequestCount = requests.filter((req) => req.includes('/main.css')).length; - await expect(cssRequestCount).toBe(1); - }); - }); - } -}); diff --git a/packages/integrations/prefetch/test/test-utils.js b/packages/integrations/prefetch/test/test-utils.js deleted file mode 100644 index 0b5de1f9d..000000000 --- a/packages/integrations/prefetch/test/test-utils.js +++ /dev/null @@ -1,30 +0,0 @@ -import { test as testBase } from '@playwright/test'; -import { loadFixture as baseLoadFixture } from '../../../astro/test/test-utils.js'; - -export function loadFixture(inlineConfig) { - if (!inlineConfig?.root) throw new Error("Must provide { root: './fixtures/...' }"); - - // resolve the relative root (i.e. "./fixtures/tailwindcss") to a full filepath - // without this, the main `loadFixture` helper will resolve relative to `packages/astro/test` - return baseLoadFixture({ - ...inlineConfig, - root: new URL(inlineConfig.root, import.meta.url).toString(), - }); -} - -export function testFactory(inlineConfig) { - let fixture; - - const test = testBase.extend({ - astro: async ({}, use) => { - fixture = await loadFixture(inlineConfig); - await use(fixture); - }, - }); - - test.afterEach(() => { - fixture.resetAllFiles(); - }); - - return test; -} |