import type { Context } from 'koa'; type CreateContextInput = { params?: Record; query?: Record; body?: Record; }; /** * Builds a minimal Koa-like context for controller/strategy tests. * Overrides are spread last so request, state, etc. can be passed in. * Return type is Context so callers can pass the result to Koa handlers/strategies. */ export default function createContext = Record>( { params = {}, query = {}, body = {} }: CreateContextInput = {}, overrides: T = {} as T ): Context { return { params, query, request: { query, body, }, ...overrides, } as unknown as Context; }