MCPcopy Create free account
hub / github.com/UsefulSoftwareCo/executor / recorder

Function recorder

packages/app/src/preload-error.test.ts:20–59  ·  view source on GitHub ↗
(options: {
  readonly serverUp: readonly boolean[];
  readonly reloadFlag?: boolean;
  readonly target?: EventTarget;
})

Source from the content-addressed store, hash-verified

18}
19
20const recorder = (options: {
21 readonly serverUp: readonly boolean[];
22 readonly reloadFlag?: boolean;
23 readonly target?: EventTarget;
24}): Recorder => {
25 const calls = {
26 probes: 0,
27 disconnected: 0,
28 reloads: 0,
29 reported: [] as unknown[],
30 flagWrites: 0,
31 };
32 let flag = options.reloadFlag ?? false;
33 return {
34 calls,
35 env: {
36 target: options.target ?? new EventTarget(),
37 probeServer: async () => {
38 const answer = options.serverUp[calls.probes] ?? options.serverUp.at(-1) ?? false;
39 calls.probes += 1;
40 return answer;
41 },
42 showDisconnected: () => {
43 calls.disconnected += 1;
44 },
45 reload: () => {
46 calls.reloads += 1;
47 },
48 report: (error) => {
49 calls.reported.push(error);
50 },
51 readReloadFlag: () => flag,
52 writeReloadFlag: () => {
53 flag = true;
54 calls.flagWrites += 1;
55 },
56 delay: async () => {},
57 },
58 };
59};
60
61// oxlint-disable-next-line executor/no-error-constructor -- test boundary: reproduces the exact TypeError the browser hands to vite:preloadError
62const chunkError = new TypeError(

Callers 1

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected