Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 21x 19x 19x 21x 19x 19x 16x 19x 8x 19x | import { vi } from 'vitest';
import type { Mock } from 'vitest';
export const makeMockMessageTarget = (): {
postMessage: Mock<(message: unknown) => void>;
addEventListener: Mock<
(_type: 'message', listener: (event: MessageEvent) => void) => void
>;
removeEventListener: Mock<
(_type: 'message', listener: (event: MessageEvent) => void) => void
>;
listeners: ((payload: unknown) => void)[];
} => {
const listeners: ((payload: unknown) => void)[] = [];
const postMessage = vi.fn((message: unknown) => {
listeners.forEach((listener) =>
listener(
message instanceof MessageEvent
? message
: new MessageEvent('message', { data: message }),
),
);
});
const addEventListener = vi.fn(
(_type: 'message', listener: (event: MessageEvent) => void) => {
listeners.push(listener as (payload: unknown) => void);
},
);
const removeEventListener = vi.fn(
(_type: 'message', listener: (event: MessageEvent) => void) => {
listeners.splice(
listeners.indexOf(listener as (payload: unknown) => void),
1,
);
},
);
return {
postMessage,
addEventListener,
removeEventListener,
listeners,
};
};
|