diff options
author | 2024-08-14 18:05:19 +0800 | |
---|---|---|
committer | 2024-08-14 11:05:19 +0100 | |
commit | 48322519b6c0f298e1256edf1135eaedc4fe6409 (patch) | |
tree | db96eccfc409d3b1edeec836a318474be096008d | |
parent | 3d37122a26c8af7309f597293e792a3b10cbea79 (diff) | |
download | astro-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.js | 62 |
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 () => { |