diff options
Diffstat (limited to 'packages/integrations/vercel/test/isr.test.js')
-rw-r--r-- | packages/integrations/vercel/test/isr.test.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/integrations/vercel/test/isr.test.js b/packages/integrations/vercel/test/isr.test.js new file mode 100644 index 000000000..fb957aa78 --- /dev/null +++ b/packages/integrations/vercel/test/isr.test.js @@ -0,0 +1,58 @@ +import assert from 'node:assert/strict'; +import { before, describe, it } from 'node:test'; +import { loadFixture } from './test-utils.js'; + +describe('ISR', () => { + /** @type {import('./test-utils.js').Fixture} */ + let fixture; + + before(async () => { + fixture = await loadFixture({ + root: './fixtures/isr/', + }); + await fixture.build(); + }); + + it('generates expected prerender config', async () => { + const vcConfig = JSON.parse( + await fixture.readFile('../.vercel/output/functions/_isr.prerender-config.json'), + ); + assert.deepEqual(vcConfig, { + expiration: 120, + bypassToken: '1c9e601d-9943-4e7c-9575-005556d774a8', + allowQuery: ['x_astro_path'], + passQuery: true, + }); + }); + + it('generates expected routes', async () => { + const deploymentConfig = JSON.parse(await fixture.readFile('../.vercel/output/config.json')); + // the first two are /_astro/*, and filesystem routes + assert.deepEqual(deploymentConfig.routes.slice(2), [ + { + src: '^/two$', + dest: '_render', + }, + { + src: '^/excluded/([^/]+?)$', + dest: '_render', + }, + { + src: '^\\/_image$', + dest: '_render', + }, + { + src: '^\\/excluded\\/([^/]+?)\\/?$', + dest: '/_isr?x_astro_path=$0', + }, + { + src: '^\\/one\\/?$', + dest: '/_isr?x_astro_path=$0', + }, + { + src: '^\\/two\\/?$', + dest: '/_isr?x_astro_path=$0', + }, + ]); + }); +}); |