aboutsummaryrefslogtreecommitdiff
path: root/packages/integrations/node/test/prerender.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/node/test/prerender.test.js')
-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 () => {