• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace Harness.Parallel {
2    export interface RunnerTask {
3        runner: TestRunnerKind;
4        file: string;
5        size: number;
6    }
7
8    export interface UnitTestTask {
9        runner: "unittest";
10        file: string;
11        size: number;
12    }
13
14    export type Task = RunnerTask | UnitTestTask;
15
16    export interface TestInfo {
17        name: string[];
18    }
19
20    export interface ErrorInfo {
21        name: string[];
22        error: string;
23        stack: string;
24    }
25
26    export interface TaskTimeout {
27        duration: number | "reset";
28    }
29
30    export interface TaskResult {
31        passing: number;
32        errors: ErrorInfo[];
33        passes: TestInfo[];
34        duration: number;
35        task: Task;
36    }
37
38    export interface ParallelTestMessage {
39        type: "test";
40        payload: Task;
41    }
42
43    export interface ParallelBatchMessage {
44        type: "batch";
45        payload: Task[];
46    }
47
48    export interface ParallelCloseMessage {
49        type: "close";
50    }
51
52    export type ParallelHostMessage = ParallelTestMessage | ParallelCloseMessage | ParallelBatchMessage;
53
54    export interface ParallelErrorMessage {
55        type: "error";
56        payload: { error: string, stack: string, name?: string[] };
57    }
58
59    export interface ParallelResultMessage {
60        type: "result";
61        payload: TaskResult;
62    }
63
64    export interface ParallelBatchProgressMessage {
65        type: "progress";
66        payload: TaskResult;
67    }
68
69    export interface ParallelTimeoutChangeMessage {
70        type: "timeout";
71        payload: TaskTimeout;
72    }
73
74    export type ParallelClientMessage = ParallelErrorMessage | ParallelResultMessage | ParallelBatchProgressMessage | ParallelTimeoutChangeMessage;
75
76    export function shimNoopTestInterface(global: Mocha.MochaGlobals) {
77        global.before = ts.noop;
78        global.after = ts.noop;
79        global.beforeEach = ts.noop;
80        global.afterEach = ts.noop;
81        global.describe = global.context = ((_: any, __: any) => { /*empty*/ }) as Mocha.SuiteFunction;
82        global.describe.skip = global.xdescribe = global.xcontext = ts.noop as Mocha.PendingSuiteFunction;
83        global.describe.only = ts.noop as Mocha.ExclusiveSuiteFunction;
84        global.it = global.specify = ((_: any, __: any) => { /*empty*/ }) as Mocha.TestFunction;
85        global.it.skip = global.xit = global.xspecify = ts.noop as Mocha.PendingTestFunction;
86        global.it.only = ts.noop as Mocha.ExclusiveTestFunction;
87    }
88}
89