diff options
Diffstat (limited to 'packages/integrations/prefetch/test/custom-selectors.test.js')
-rw-r--r-- | packages/integrations/prefetch/test/custom-selectors.test.js | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/packages/integrations/prefetch/test/custom-selectors.test.js b/packages/integrations/prefetch/test/custom-selectors.test.js index 64ac5fc63..d57ac3b90 100644 --- a/packages/integrations/prefetch/test/custom-selectors.test.js +++ b/packages/integrations/prefetch/test/custom-selectors.test.js @@ -25,20 +25,24 @@ test.describe('Custom prefetch selectors', () => { test.describe('prefetches links by custom selector', () => { test('only prefetches /contact', async ({ page, astro }) => { - const requests = new Set(); + const requests = []; - page.on('request', async (request) => requests.add(request.url())); + page.on('request', async (request) => requests.push(request.url())); await page.goto(astro.resolveUrl('/')); await page.waitForLoadState('networkidle'); - await expect(requests.has(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); - await expect( - requests.has(astro.resolveUrl('/contact')), + expect(requests.includes(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); + expect( + requests.includes(astro.resolveUrl('/contact')), '/contact was prefetched' ).toBeTruthy(); - await expect(requests.has(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); + 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(); }); }); }); @@ -58,20 +62,24 @@ test.describe('Custom prefetch selectors', () => { test.describe('prefetches links by custom selector', () => { test('only prefetches /contact', async ({ page, astro }) => { - const requests = new Set(); + const requests = []; - page.on('request', async (request) => requests.add(request.url())); + page.on('request', async (request) => requests.push(request.url())); await page.goto(astro.resolveUrl('/')); await page.waitForLoadState('networkidle'); - await expect(requests.has(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); - await expect( - requests.has(astro.resolveUrl('/contact')), + expect(requests.includes(astro.resolveUrl('/about')), '/about was skipped').toBeFalsy(); + expect( + requests.includes(astro.resolveUrl('/contact')), '/contact was prefetched' ).toBeTruthy(); - await expect(requests.has(astro.resolveUrl('/admin')), '/admin was skipped').toBeFalsy(); + 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(); }); }); }); |