mirror of
https://github.com/LukeHagar/vercel.git
synced 2025-12-10 04:22:12 +00:00
[next] Fix middleware order and add e2e test (#7847)
Fix middleware order and add e2e test
This commit is contained in:
@@ -10,7 +10,12 @@ import runBuildLambda from '../../../../test/lib/run-build-lambda';
|
||||
import { EdgeFunction, Files, streamToBuffer } from '@vercel/build-utils';
|
||||
import { createHash } from 'crypto';
|
||||
|
||||
const SIMPLE_PROJECT = path.resolve(__dirname, 'middleware');
|
||||
const SIMPLE_PROJECT = path.resolve(
|
||||
__dirname,
|
||||
'..',
|
||||
'fixtures',
|
||||
'00-middleware'
|
||||
);
|
||||
|
||||
describe('Middleware simple project', () => {
|
||||
const ctx: Context = {};
|
||||
@@ -20,6 +25,28 @@ describe('Middleware simple project', () => {
|
||||
ctx.buildResult = result.buildResult;
|
||||
});
|
||||
|
||||
it('orders middleware route correctly', async () => {
|
||||
const middlewareIndex = ctx.buildResult.routes.findIndex(item => {
|
||||
return !!item.middlewarePath;
|
||||
});
|
||||
const redirectIndex = ctx.buildResult.routes.findIndex(item => {
|
||||
return item.src && item.src.includes('redirect-me');
|
||||
});
|
||||
const beforeFilesIndex = ctx.buildResult.routes.findIndex(item => {
|
||||
return item.src && item.src.includes('rewrite-before-files');
|
||||
});
|
||||
const handleFileSystemIndex = ctx.buildResult.routes.findIndex(item => {
|
||||
return item.handle === 'filesystem';
|
||||
});
|
||||
expect(typeof middlewareIndex).toBe('number');
|
||||
expect(typeof redirectIndex).toBe('number');
|
||||
expect(typeof beforeFilesIndex).toBe('number');
|
||||
expect(redirectIndex).toBeLessThan(middlewareIndex);
|
||||
expect(redirectIndex).toBeLessThan(beforeFilesIndex);
|
||||
expect(beforeFilesIndex).toBeLessThan(middlewareIndex);
|
||||
expect(middlewareIndex).toBeLessThan(handleFileSystemIndex);
|
||||
});
|
||||
|
||||
it('generates deterministic code', async () => {
|
||||
const result = await runBuildLambda(SIMPLE_PROJECT);
|
||||
const output = Object.entries(result.buildResult.output).filter(
|
||||
|
||||
Reference in New Issue
Block a user