diff options
author | 2025-02-06 13:14:31 +0000 | |
---|---|---|
committer | 2025-02-06 13:14:31 +0000 | |
commit | 64c9a1e23a3baa1c3f61f2f8483a3ad908881acc (patch) | |
tree | b33e28638370bd36510f49718c82a0251bfad460 /packages/integrations/netlify/test/functions/edge-middleware.test.js | |
parent | bba875a16c6d9c1c0ccd3956a52dc9d942918013 (diff) | |
parent | c16cca69a85e282605325ac049ec28eed202b923 (diff) | |
download | astro-64c9a1e23a3baa1c3f61f2f8483a3ad908881acc.tar.gz astro-64c9a1e23a3baa1c3f61f2f8483a3ad908881acc.tar.zst astro-64c9a1e23a3baa1c3f61f2f8483a3ad908881acc.zip |
Merge branch 'main' of ../../temp/adapters into move-netlify
Diffstat (limited to 'packages/integrations/netlify/test/functions/edge-middleware.test.js')
-rw-r--r-- | packages/integrations/netlify/test/functions/edge-middleware.test.js | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/packages/integrations/netlify/test/functions/edge-middleware.test.js b/packages/integrations/netlify/test/functions/edge-middleware.test.js new file mode 100644 index 000000000..bb0286241 --- /dev/null +++ b/packages/integrations/netlify/test/functions/edge-middleware.test.js @@ -0,0 +1,66 @@ +import * as assert from 'node:assert/strict'; +import { after, before, describe, it } from 'node:test'; +import { loadFixture } from '@astrojs/test-utils'; + +describe( + 'Middleware', + () => { + const root = new URL('./fixtures/middleware/', import.meta.url); + + 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 () => { + assert.equal( + fixture.pathExists('../.netlify/v1/edge-functions/middleware/middleware.mjs'), + 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'); + assert.equal(prerenderedPage.includes('<title>Middleware</title>'), true); + }); + + after(async () => { + process.env.EDGE_MIDDLEWARE = undefined; + await fixture.clean(); + }); + }); + + 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/v1/edge-functions/middleware/middleware.mjs' + ); + assert.equal(contents.includes('"Hello world"'), false); + }); + + it.skip('does not apply middleware during prerendering', async () => { + const prerenderedPage = await fixture.readFile('prerender/index.html'); + assert.equal(prerenderedPage.includes('<title></title>'), true); + }); + + after(async () => { + process.env.EDGE_MIDDLEWARE = undefined; + await fixture.clean(); + }); + }); + }, + { + timeout: 120000, + } +); |