summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Bjorn Lu <bjornlu.dev@gmail.com> 2024-08-14 18:05:19 +0800
committerGravatar GitHub <noreply@github.com> 2024-08-14 11:05:19 +0100
commit48322519b6c0f298e1256edf1135eaedc4fe6409 (patch)
treedb96eccfc409d3b1edeec836a318474be096008d
parent3d37122a26c8af7309f597293e792a3b10cbea79 (diff)
downloadastro-48322519b6c0f298e1256edf1135eaedc4fe6409.tar.gz
astro-48322519b6c0f298e1256edf1135eaedc4fe6409.tar.zst
astro-48322519b6c0f298e1256edf1135eaedc4fe6409.zip
Deprecates exporting prerender with dynamic values (#11657)
* wip * done i think * Add changeset * Use hook instead * Reorder hooks [skip ci] * Update .changeset/eleven-pens-glow.md Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Fix run * Fix link * Add link Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com> * More accurate migration [skip ci] --------- Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> Co-authored-by: Sarah Rainsberger <sarah11918@users.noreply.github.com>
-rw-r--r--packages/integrations/node/test/prerender.test.js62
1 files changed, 62 insertions, 0 deletions
diff --git a/packages/integrations/node/test/prerender.test.js b/packages/integrations/node/test/prerender.test.js
index d856d9d3e..e699a1b3c 100644
--- a/packages/integrations/node/test/prerender.test.js
+++ b/packages/integrations/node/test/prerender.test.js
@@ -57,6 +57,7 @@ describe('Prerendering', () => {
assert.equal(res.status, 200);
assert.equal($('h1').text(), 'Two');
+ assert.ok(fixture.pathExists('/client/two/index.html'));
});
it('Can render prerendered route with redirect and query params', async () => {
@@ -131,6 +132,7 @@ describe('Prerendering', () => {
assert.equal(res.status, 200);
assert.equal($('h1').text(), 'Two');
+ assert.ok(fixture.pathExists('/client/two/index.html'));
});
it('Can render prerendered route with redirect and query params', async () => {
@@ -152,6 +154,64 @@ describe('Prerendering', () => {
});
});
+ describe('Via integration', () => {
+ before(async () => {
+ process.env.PRERENDER = false;
+ fixture = await loadFixture({
+ root: './fixtures/prerender/',
+ output: 'server',
+ outDir: './dist/via-integration',
+ build: {
+ client: './dist/via-integration/client',
+ server: './dist/via-integration/server',
+ },
+ adapter: nodejs({ mode: 'standalone' }),
+ integrations: [
+ {
+ name: 'test',
+ hooks: {
+ 'astro:route:setup': ({ route }) => {
+ if (route.component.endsWith('two.astro')) {
+ route.prerender = true;
+ }
+ },
+ },
+ },
+ ],
+ });
+ await fixture.build();
+ const { startServer } = await fixture.loadAdapterEntryModule();
+ let res = startServer();
+ server = res.server;
+ await waitServerListen(server.server);
+ });
+
+ after(async () => {
+ await server.stop();
+ await fixture.clean();
+ delete process.env.PRERENDER;
+ });
+
+ it('Can render SSR route', async () => {
+ const res = await fetch(`http://${server.host}:${server.port}/one`);
+ const html = await res.text();
+ const $ = cheerio.load(html);
+
+ assert.equal(res.status, 200);
+ assert.equal($('h1').text(), 'One');
+ });
+
+ it('Can render prerendered route', async () => {
+ const res = await fetch(`http://${server.host}:${server.port}/two`);
+ const html = await res.text();
+ const $ = cheerio.load(html);
+
+ assert.equal(res.status, 200);
+ assert.equal($('h1').text(), 'Two');
+ assert.ok(fixture.pathExists('/client/two/index.html'));
+ });
+ });
+
describe('Dev', () => {
let devServer;
@@ -243,6 +303,7 @@ describe('Hybrid rendering', () => {
assert.equal(res.status, 200);
assert.equal($('h1').text(), 'One');
+ assert.ok(fixture.pathExists('/client/one/index.html'));
});
it('Can render prerendered route with redirect and query params', async () => {
@@ -316,6 +377,7 @@ describe('Hybrid rendering', () => {
assert.equal(res.status, 200);
assert.equal($('h1').text(), 'One');
+ assert.ok(fixture.pathExists('/client/one/index.html'));
});
it('Can render prerendered route with redirect and query params', async () => {