diff options
Diffstat (limited to 'packages/integrations/netlify/test/functions/edge-middleware.test.js')
-rw-r--r-- | packages/integrations/netlify/test/functions/edge-middleware.test.js | 61 |
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>") + }) + }) }); |