summaryrefslogtreecommitdiff
path: root/packages/integrations/netlify/test/functions/edge-middleware.test.js
diff options
context:
space:
mode:
Diffstat (limited to 'packages/integrations/netlify/test/functions/edge-middleware.test.js')
-rw-r--r--packages/integrations/netlify/test/functions/edge-middleware.test.js61
1 files changed, 40 insertions, 21 deletions
diff --git a/packages/integrations/netlify/test/functions/edge-middleware.test.js b/packages/integrations/netlify/test/functions/edge-middleware.test.js
index 0f5001c46..412066d1d 100644
--- a/packages/integrations/netlify/test/functions/edge-middleware.test.js
+++ b/packages/integrations/netlify/test/functions/edge-middleware.test.js
@@ -1,26 +1,45 @@
-import { fileURLToPath } from 'url';
import { expect } from 'chai';
-import fs from 'fs/promises';
-import { cli } from './test-utils.js';
+import { loadFixture } from "@astrojs/test-utils"
describe('Middleware', () => {
- it('with edge handle file, should successfully build the middleware', async () => {
- const root = new URL('./fixtures/middleware-with-handler-file/', import.meta.url).toString();
- await cli('build', '--root', fileURLToPath(root));
- const contents = await fs.readFile(
- new URL('./.netlify/edge-functions/edgeMiddleware.js', root),
- 'utf-8'
- );
- expect(contents.includes('"Hello world"')).to.be.true;
- });
+ const root = new URL('./fixtures/middleware/', import.meta.url)
- it('without edge handle file, should successfully build the middleware', async () => {
- const root = new URL('./fixtures/middleware-without-handler-file/', import.meta.url).toString();
- await cli('build', '--root', fileURLToPath(root));
- const contents = await fs.readFile(
- new URL('./.netlify/edge-functions/edgeMiddleware.js', root),
- 'utf-8'
- );
- expect(contents.includes('"Hello world"')).to.be.false;
- });
+ describe("edgeMiddleware: false", () => {
+ let fixture
+ before(async () => {
+ process.env.EDGE_MIDDLEWARE = 'false';
+ fixture = await loadFixture({ root });
+ await fixture.build();
+ })
+
+ it('emits no edge function', async () => {
+ expect(fixture.pathExists('../.netlify/edge-functions/middleware/middleware.mjs')).to.be.false
+ });
+
+ it('applies middleware to static files at build-time', async () => {
+ // prerendered page has middleware applied at build time
+ const prerenderedPage = await fixture.readFile('prerender/index.html')
+ expect(prerenderedPage).to.contain("<title>Middleware</title>")
+ });
+ })
+
+
+ describe("edgeMiddleware: true", () => {
+ let fixture
+ before(async () => {
+ process.env.EDGE_MIDDLEWARE = 'true';
+ fixture = await loadFixture({ root });
+ await fixture.build();
+ })
+
+ it('emits an edge function', async () => {
+ const contents = await fixture.readFile('../.netlify/edge-functions/middleware/middleware.mjs')
+ expect(contents.includes('"Hello world"')).to.be.false;
+ })
+
+ it('does not apply middleware during prerendering', async () => {
+ const prerenderedPage = await fixture.readFile('prerender/index.html')
+ expect(prerenderedPage).to.contain("<title></title>")
+ })
+ })
});