UNPKG

814 BPlain TextView Raw
1import {Context} from 'koa';
2
3export type Cookies = Context['cookies'];
4
5export interface Dictionary<T> {
6 [key: string]: T;
7}
8
9export interface MockCookies extends Cookies {
10 requestStore: Map<string, string>;
11 responseStore: Map<string, string>;
12}
13
14export default function createMockCookies(
15 cookies = {},
16 secure = true,
17): MockCookies {
18 const cookieEntries = Object.keys(cookies).map(
19 key => [key, cookies[key]] as [string, string],
20 );
21
22 const requestStore = new Map<string, string>(cookieEntries);
23 const responseStore = new Map<string, string>(cookieEntries);
24
25 return {
26 set: jest.fn((key, value) => {
27 return responseStore.set(key, value);
28 }),
29 get: jest.fn(key => {
30 return requestStore.get(key);
31 }),
32 requestStore,
33 responseStore,
34 secure,
35 } as any;
36}