1 | import {Context} from 'koa';
|
2 |
|
3 | export type Cookies = Context['cookies'];
|
4 |
|
5 | export interface Dictionary<T> {
|
6 | [key: string]: T;
|
7 | }
|
8 |
|
9 | export interface MockCookies extends Cookies {
|
10 | requestStore: Map<string, string>;
|
11 | responseStore: Map<string, string>;
|
12 | }
|
13 |
|
14 | export 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 | }
|