diff options
author | 2023-12-17 16:44:09 +0100 | |
---|---|---|
committer | 2023-12-17 16:44:09 +0100 | |
commit | 94dcbfed0607d037c591001b5484de74661c90a2 (patch) | |
tree | 7ecfac03e71d61da8cf9fcf935291fc57e005432 /packages/integrations/netlify/test/functions/edge-middleware.test.js | |
parent | acb92412634176ae32dfbe186bf430055408e8fd (diff) | |
download | astro-94dcbfed0607d037c591001b5484de74661c90a2.tar.gz astro-94dcbfed0607d037c591001b5484de74661c90a2.tar.zst astro-94dcbfed0607d037c591001b5484de74661c90a2.zip |
feat(netlify): Netlify Adapter v4 (#84)
Co-authored-by: Matt Kane <m@mk.gg>
Co-authored-by: Jacklyn <70537879+jacklyn-net@users.noreply.github.com>
Co-authored-by: Arsh <69170106+lilnasy@users.noreply.github.com>
Co-authored-by: Emanuele Stoppa <602478+ematipico@users.noreply.github.com>
Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
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>") + }) + }) }); |