aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/vercel/test/isr.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/vercel/test/isr.test.js')
-rw-r--r--packages/integrations/vercel/test/isr.test.js58
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',
+ },
+ ]);
+ });
+});