1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- import assert from 'node:assert/strict';
- import { before, describe, it } from 'node:test';
- import { loadFixture } from './test-utils.js';
- describe('Vercel edge middleware', () => {
- /** @type {import('../../../astro/test/test-utils.js').Fixture} */
- let build;
- before(async () => {
- build = await loadFixture({
- root: './fixtures/middleware-with-edge-file/',
- });
- await build.build();
- });
- it('an edge function is created', async () => {
- const contents = await build.readFile(
- '../.vercel/output/functions/_middleware.func/.vc-config.json'
- );
- const contentsJSON = JSON.parse(contents);
- assert.equal(contentsJSON.runtime, 'edge');
- assert.equal(contentsJSON.entrypoint, 'middleware.mjs');
- });
- it('deployment config points to the middleware edge function', async () => {
- const contents = await build.readFile('../.vercel/output/config.json');
- const { routes } = JSON.parse(contents);
- assert.equal(
- routes.some((route) => route.dest === '_middleware'),
- true
- );
- });
- // TODO: The path here seems to be inconsistent?
- it.skip('with edge handle file, should successfully build the middleware', async () => {
- const fixture = await loadFixture({
- root: './fixtures/middleware-with-edge-file/',
- });
- await fixture.build();
- const contents = await fixture.readFile(
- // this is abysmal...
- '../.vercel/output/functions/render.func/www/withastro/astro/packages/integrations/vercel/test/fixtures/middleware-with-edge-file/dist/middleware.mjs'
- );
- // assert.equal(contents.includes('title:')).to.be.true;
- // chaiJestSnapshot.setTestName('Middleware with handler file');
- // assert.equal(contents).to.matchSnapshot(true);
- });
- // TODO: The path here seems to be inconsistent?
- it.skip('without edge handle file, should successfully build the middleware', async () => {
- const fixture = await loadFixture({
- root: './fixtures/middleware-without-edge-file/',
- });
- await fixture.build();
- const contents = await fixture.readFile(
- // this is abysmal...
- '../.vercel/output/functions/render.func/www/withastro/astro/packages/integrations/vercel/test/fixtures/middleware-without-edge-file/dist/middleware.mjs'
- );
- // assert.equal(contents.includes('title:')).to.be.false;
- // chaiJestSnapshot.setTestName('Middleware without handler file');
- // assert.equal(contents).to.matchSnapshot(true);
- });
- });
|