import { ExecutionContext } from '@nestjs/common'; import { ROLES_KEY } from '../auth/decorators/roles.decorator'; export type MockHttpContextOptions = { handler: Function; clazz: Function; user?: unknown; }; export type AdminHandler = [string, Function]; export function mockHttpContext(options: MockHttpContextOptions): ExecutionContext { return { getClass: () => options.clazz, getHandler: () => options.handler, switchToHttp: () => ({ getRequest: () => ({ user: options.user }), getResponse: () => ({}), getNext: () => undefined, }), } as unknown as ExecutionContext; } export function getRolesMetadata(handler: Function): string[] | undefined { return Reflect.getMetadata(ROLES_KEY, handler) as string[] | undefined; }