diff options
Diffstat (limited to 'packages/integrations/node/test/prerender.test.js')
| -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 () => { | 
