directus
1import type { RequestHandler, Request, Response } from 'express';
2import '../types/express.d.ts';
3import asyncHandler from './async-handler.js';
4import { expect, vi, test } from 'vitest';
5
6let mockRequest: Partial<Request & { token?: string }>;
7let mockResponse: Partial<Response>;
8const nextFunction = vi.fn();
9
10test('Wraps async middleware in Promise resolve that will catch rejects and pass them to the nextFn', async () => {
11const err = new Error('testing');
12
13const middleware: RequestHandler = async (_req, _res, _next) => {
14throw err;
15};
16
17await asyncHandler(middleware)(mockRequest as Request, mockResponse as Response, nextFunction);
18
19expect(nextFunction).toHaveBeenCalledWith(err);
20});
21