summaryrefslogtreecommitdiff
path: root/packages/integrations/cloudflare/test
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/cloudflare/test')
-rw-r--r--packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro2
-rw-r--r--packages/integrations/cloudflare/test/prerender.test.js45
-rw-r--r--packages/integrations/cloudflare/test/test-utils.js4
3 files changed, 48 insertions, 3 deletions
diff --git a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro b/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro
index 30386a625..e11de7add 100644
--- a/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro
+++ b/packages/integrations/cloudflare/test/fixtures/prerender/src/pages/one.astro
@@ -1,5 +1,5 @@
---
-export const prerender = true;
+export const prerender = import.meta.env.PRERENDER;
---
<html>
<head>
diff --git a/packages/integrations/cloudflare/test/prerender.test.js b/packages/integrations/cloudflare/test/prerender.test.js
index a3ce50d08..5d3ff9f10 100644
--- a/packages/integrations/cloudflare/test/prerender.test.js
+++ b/packages/integrations/cloudflare/test/prerender.test.js
@@ -1,19 +1,60 @@
import { loadFixture } from './test-utils.js';
import { expect } from 'chai';
+import slash from 'slash';
describe('Prerendering', () => {
/** @type {import('./test-utils').Fixture} */
let fixture;
before(async () => {
+ process.env.PRERENDER = true;
fixture = await loadFixture({
root: './fixtures/prerender/',
});
await fixture.build();
});
+ after(() => {
+ delete process.env.PRERENDER;
+ fixture.clean();
+ });
+
+ it('includes prerendered routes in the routes.json config', async () => {
+ const foundRoutes = JSON.parse(await fixture.readFile('/_routes.json')).exclude.map((r) =>
+ slash(r)
+ );
+ const expectedExcludedRoutes = ['/_worker.js', '/one/index.html', '/one/'];
+
+ expect(foundRoutes.every((element) => expectedExcludedRoutes.includes(element))).to.be.true;
+ });
+});
+
+describe('Hybrid rendering', () => {
+ /** @type {import('./test-utils').Fixture} */
+ let fixture;
+
+ before(async () => {
+ process.env.PRERENDER = false;
+ fixture = await loadFixture({
+ root: './fixtures/prerender/',
+ output: 'hybrid',
+ experimental: {
+ hybridOutput: true,
+ },
+ });
+ await fixture.build();
+ });
+
+ after(() => {
+ delete process.env.PRERENDER;
+ });
+
it('includes prerendered routes in the routes.json config', async () => {
- const routes = JSON.parse(await fixture.readFile('/_routes.json'));
- expect(routes.exclude).to.include('/one/');
+ const foundRoutes = JSON.parse(await fixture.readFile('/_routes.json')).exclude.map((r) =>
+ slash(r)
+ );
+ const expectedExcludedRoutes = ['/_worker.js', '/index.html', '/'];
+
+ expect(foundRoutes.every((element) => expectedExcludedRoutes.includes(element))).to.be.true;
});
});
diff --git a/packages/integrations/cloudflare/test/test-utils.js b/packages/integrations/cloudflare/test/test-utils.js
index 58cb8f9dd..b4628825c 100644
--- a/packages/integrations/cloudflare/test/test-utils.js
+++ b/packages/integrations/cloudflare/test/test-utils.js
@@ -4,6 +4,10 @@ import { fileURLToPath } from 'url';
export { fixLineEndings } from '../../../astro/test/test-utils.js';
+/**
+ * @typedef {import('../../../astro/test/test-utils').Fixture} Fixture
+ */
+
export function loadFixture(config) {
if (config?.root) {
config.root = new URL(config.root, import.meta.url);