odhin-reports-playwright 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +35 -0
- package/lib/generate.d.ts +56 -0
- package/lib/generate.js +969 -0
- package/lib/help.d.ts +46 -0
- package/lib/help.js +503 -0
- package/lib/html/assets/css/bootstrap.min.css +1 -0
- package/lib/html/assets/css/dark-theme.css +55 -0
- package/lib/html/assets/css/dark-theme.min.css +1 -0
- package/lib/html/assets/css/img-comparison-slider.css +50 -0
- package/lib/html/assets/css/img-comparison-slider.min.css +1 -0
- package/lib/html/assets/css/jquery.dataTables.min.css +1 -0
- package/lib/html/assets/css/light-theme.css +53 -0
- package/lib/html/assets/css/light-theme.min.css +1 -0
- package/lib/html/assets/css/prism.css +163 -0
- package/lib/html/assets/css/prism.min.css +1 -0
- package/lib/html/assets/css/style-colors.css +349 -0
- package/lib/html/assets/css/style-colors.min.css +1 -0
- package/lib/html/assets/css/style.css +586 -0
- package/lib/html/assets/css/style.min.css +1 -0
- package/lib/html/assets/js/bootstrap.min.js +1 -0
- package/lib/html/assets/js/chart.min.js +1 -0
- package/lib/html/assets/js/customTheme.js +40 -0
- package/lib/html/assets/js/customTheme.min.js +1 -0
- package/lib/html/assets/js/darkTheme.js +34 -0
- package/lib/html/assets/js/darkTheme.min.js +1 -0
- package/lib/html/assets/js/dataTables.js +4 -0
- package/lib/html/assets/js/dataTables.min.js +1 -0
- package/lib/html/assets/js/img-comparison-slider.min.js +2 -0
- package/lib/html/assets/js/jquery-3.5.1.min.js +1 -0
- package/lib/html/assets/js/jquery.dataTables.min.js +1 -0
- package/lib/html/assets/js/lightTheme.js +34 -0
- package/lib/html/assets/js/lightTheme.min.js +1 -0
- package/lib/html/assets/js/prism.min.js +1 -0
- package/lib/html/assets/js/script.js +61 -0
- package/lib/html/assets/js/script.min.js +1 -0
- package/lib/html/base.html +182 -0
- package/lib/html/chart.html +21 -0
- package/lib/html/chartFile.html +33 -0
- package/lib/html/chartInfo.html +5 -0
- package/lib/html/chartJs.html +133 -0
- package/lib/html/chartProject.html +33 -0
- package/lib/html/chartStatus.html +87 -0
- package/lib/html/content.html +30 -0
- package/lib/html/runInfo.html +47 -0
- package/lib/html/summary.html +20 -0
- package/lib/html/summaryRow.html +10 -0
- package/lib/html/testCase.html +12 -0
- package/lib/html/testCaseDetails.html +125 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +48 -0
- package/lib/server.mjs +8 -0
- package/lib/types/execFileInfo.types.d.ts +13 -0
- package/lib/types/execFileInfo.types.js +2 -0
- package/lib/types/execInfo.types.d.ts +15 -0
- package/lib/types/execInfo.types.js +2 -0
- package/lib/types/execOptions.types.d.ts +17 -0
- package/lib/types/execOptions.types.js +2 -0
- package/lib/types/execProjectInfo.types.d.ts +13 -0
- package/lib/types/execProjectInfo.types.js +2 -0
- package/lib/types/execTestCase.types.d.ts +14 -0
- package/lib/types/execTestCase.types.js +2 -0
- package/lib/types/execTestResult.types.d.ts +43 -0
- package/lib/types/execTestResult.types.js +2 -0
- package/lib/types/onEnd.types.d.ts +12 -0
- package/lib/types/onEnd.types.js +2 -0
- package/lib/types/onProject.types.d.ts +53 -0
- package/lib/types/onProject.types.js +2 -0
- package/lib/types/onStdIO.types.d.ts +11 -0
- package/lib/types/onStdIO.types.js +2 -0
- package/lib/types/onStepBegin.types.d.ts +22 -0
- package/lib/types/onStepBegin.types.js +2 -0
- package/lib/types/onStepEnd.types.d.ts +25 -0
- package/lib/types/onStepEnd.types.js +2 -0
- package/lib/types/onTestBegin.types.d.ts +15 -0
- package/lib/types/onTestBegin.types.js +2 -0
- package/lib/types/onTestEnd.types.d.ts +37 -0
- package/lib/types/onTestEnd.types.js +2 -0
- package/lib/types/testReport.types.d.ts +6 -0
- package/lib/types/testReport.types.js +2 -0
- package/package.json +67 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<div class="mt-3 mb-3 odhin-thin-border dashboard-block">
|
|
2
|
+
<div class="info-box-header">Run info</div>
|
|
3
|
+
<div class="odhin-table">
|
|
4
|
+
<div class="container-fluid">
|
|
5
|
+
<div class="row m-0 p-0">
|
|
6
|
+
<div class="col m-0 p-0">
|
|
7
|
+
<div class="table-responsive text-start">
|
|
8
|
+
<table
|
|
9
|
+
class="table table-sm mb-0 testcase-run-info-table"
|
|
10
|
+
>
|
|
11
|
+
<tr>
|
|
12
|
+
<th class="odhin-text-2">Project</th>
|
|
13
|
+
<td class="text-secondary-emphasis fst-italic">{{.Project}}</td>
|
|
14
|
+
</tr>
|
|
15
|
+
<tr>
|
|
16
|
+
<th class="odhin-text-2 fst-italic">Release</th>
|
|
17
|
+
<td class="text-secondary-emphasis fst-italic">{{.Release}}</td>
|
|
18
|
+
</tr>
|
|
19
|
+
<tr>
|
|
20
|
+
<th class="odhin-text-2 fst-italic">Test Environment</th>
|
|
21
|
+
<td class="text-secondary-emphasis fst-italic">
|
|
22
|
+
{{.TestEnvironment}}
|
|
23
|
+
</td>
|
|
24
|
+
</tr>
|
|
25
|
+
<tr>
|
|
26
|
+
<th class="odhin-text-2">Execution Start Time</th>
|
|
27
|
+
<td class="text-secondary-emphasis fst-italic">
|
|
28
|
+
{{.StartTime}}
|
|
29
|
+
</td>
|
|
30
|
+
</tr>
|
|
31
|
+
<tr>
|
|
32
|
+
<th class="odhin-text-2">Execution End Time</th>
|
|
33
|
+
<td class="text-secondary-emphasis fst-italic">{{.EndTime}}</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<th class="odhin-text-2">Total Execution Time</th>
|
|
37
|
+
<td class="text-secondary-emphasis fst-italic">
|
|
38
|
+
{{.TotalExecutionTime}}
|
|
39
|
+
</td>
|
|
40
|
+
</tr>
|
|
41
|
+
</table>
|
|
42
|
+
</div>
|
|
43
|
+
</div>
|
|
44
|
+
</div>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<div class="mt-3 mb-3 odhin-thin-border dashboard-block">
|
|
2
|
+
<div class="info-box-header">{{.SummaryTitleName}}</div>
|
|
3
|
+
<div class="odhin-table-no-scroll">
|
|
4
|
+
<div class="table-responsive">
|
|
5
|
+
<table class="table table-sm mb-0">
|
|
6
|
+
<tr>
|
|
7
|
+
<th class="odhin-text-2">{{.SummaryColumnName}}</th>
|
|
8
|
+
<th class="odhin-text-2">Tests</th>
|
|
9
|
+
<th class="odhin-text-2">Execution Time</th>
|
|
10
|
+
<th class="odhin-text-2">Passed</th>
|
|
11
|
+
<th class="odhin-text-2">Failed</th>
|
|
12
|
+
<th class="odhin-text-2">Timed Out</th>
|
|
13
|
+
<th class="odhin-text-2">Skipped</th>
|
|
14
|
+
<th class="odhin-text-2">Interrupted</th>
|
|
15
|
+
</tr>
|
|
16
|
+
{{.Data}}
|
|
17
|
+
</table>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<tr>
|
|
2
|
+
<td class="fs-6 text-secondary-emphasis text-start summary-row-left-column">{{.Name}}</td>
|
|
3
|
+
<td class="text-secondary-emphasis">{{.TotalTests}}</td>
|
|
4
|
+
<td class="text-secondary-emphasis">{{.TotalExecutionTime}}</td>
|
|
5
|
+
<td class="result-status-passed">{{.PassedValue}} (<label class="fst-italic">{{.PassedPercentage}}%</label>)</td>
|
|
6
|
+
<td class="result-status-failed">{{.FailedValue}} (<label class="fst-italic">{{.FailedPercentage}}%</label>)</td>
|
|
7
|
+
<td class="result-status-timedOut">{{.TimedOutValue}} (<label class="fst-italic">{{.TimedOutPercentage}}%</label>)</td>
|
|
8
|
+
<td class="result-status-skipped">{{.SkippedValue}} (<label class="fst-italic">{{.SkippedPercentage}}%</label>)</td>
|
|
9
|
+
<td class="result-status-interrupted">{{.InterruptedValue}} (<label class="fst-italic">{{.InterruptedPercentage}}%</label>)</td>
|
|
10
|
+
</tr>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<tr class="test-row-result row-{{.TRClassesCss}} {{.TRClassesCss}}"
|
|
2
|
+
data-bs-toggle="modal"
|
|
3
|
+
data-bs-target="#{{.ModalID}}"
|
|
4
|
+
onclick="showHideScroll('hide')"
|
|
5
|
+
>
|
|
6
|
+
<td class="{{.TDClassesCss}}">{{.Title}}</td>
|
|
7
|
+
<td class="text-capitalize {{.TDClassesCss}}">{{.Status}}</td>
|
|
8
|
+
<td class="{{.TDClassesCss}}">{{.File}}</td>
|
|
9
|
+
<td class="{{.TDClassesCss}}">{{.Project}}</td>
|
|
10
|
+
<td class="{{.TDClassesCss}}">{{.Duration}}</td>
|
|
11
|
+
{{.Retry}}
|
|
12
|
+
</tr>
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
<div
|
|
2
|
+
class="modal fade"
|
|
3
|
+
id="{{.ModalID}}"
|
|
4
|
+
tabindex="-1"
|
|
5
|
+
aria-labelledby="{{.ModalID}}Label"
|
|
6
|
+
aria-hidden="true"
|
|
7
|
+
>
|
|
8
|
+
<div class="modal-dialog modal-fullscreen modal-dialog-scrollable">
|
|
9
|
+
<div class="modal-content">
|
|
10
|
+
<div class="modal-header result-header">
|
|
11
|
+
|
|
12
|
+
<div class="header-col-left">
|
|
13
|
+
<span class="modal-title fs-5" id="{{.ModalID}}Label">
|
|
14
|
+
<label class="text-capitalize {{.ModalHeaderClassesCss}}">{{.ModalHeaderStatus}}</label>
|
|
15
|
+
</span>
|
|
16
|
+
</div>
|
|
17
|
+
<div class="header-col-center">
|
|
18
|
+
{{.Title}}
|
|
19
|
+
</div>
|
|
20
|
+
<div class="header-col-right">
|
|
21
|
+
<span
|
|
22
|
+
type="button"
|
|
23
|
+
class="close-btn"
|
|
24
|
+
data-bs-dismiss="modal"
|
|
25
|
+
aria-label="Close"
|
|
26
|
+
onclick="showHideScroll('show')"
|
|
27
|
+
>X</span>
|
|
28
|
+
</div>
|
|
29
|
+
|
|
30
|
+
</div>
|
|
31
|
+
<div class="modal-header result-tab-header">
|
|
32
|
+
<div class="tab">
|
|
33
|
+
<button class="result-tablinks-{{.ModalID}} active" onclick="openResultTab(event, 'TabRunInfo-{{.ModalID}}', '{{.ModalID}}')">
|
|
34
|
+
Info
|
|
35
|
+
</button>
|
|
36
|
+
<button class="result-tablinks-{{.ModalID}}" onclick="openResultTab(event, 'TabSteps-{{.ModalID}}', '{{.ModalID}}')">
|
|
37
|
+
Steps
|
|
38
|
+
</button>
|
|
39
|
+
{{.ErrorsTabButton}}
|
|
40
|
+
{{.ScreenshotsTabButton}}
|
|
41
|
+
{{.VideosTabButton}}
|
|
42
|
+
{{.TraceTabButton}}
|
|
43
|
+
{{.StdoutTabButton}}
|
|
44
|
+
{{.StderrTabButton}}
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="modal-body odhin-bg-2">
|
|
48
|
+
<div id="TabRunInfo-{{.ModalID}}" style="display: block" class="result-tabcontent result-tabcontent-{{.ModalID}}">
|
|
49
|
+
<div class="container-fluid">
|
|
50
|
+
<div class="row m-0 p-0">
|
|
51
|
+
<div class="col m-0 p-0">
|
|
52
|
+
<div class="table-responsive">
|
|
53
|
+
<table
|
|
54
|
+
class="table table-sm mb-0 testcase-run-info-table"
|
|
55
|
+
>
|
|
56
|
+
<tr>
|
|
57
|
+
<th class="odhin-text-2">Run Info</th>
|
|
58
|
+
<td
|
|
59
|
+
class="text-secondary-emphasis fst-italic"
|
|
60
|
+
>
|
|
61
|
+
|
|
62
|
+
</td>
|
|
63
|
+
</tr>
|
|
64
|
+
<tr>
|
|
65
|
+
<th class="odhin-text-2 fst-italic">Project</th>
|
|
66
|
+
<td
|
|
67
|
+
class="text-secondary-emphasis fst-italic"
|
|
68
|
+
>
|
|
69
|
+
{{.InfoProject}}
|
|
70
|
+
</td>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<th class="odhin-text-2">
|
|
74
|
+
Execution Start Time
|
|
75
|
+
</th>
|
|
76
|
+
<td
|
|
77
|
+
class="text-secondary-emphasis fst-italic"
|
|
78
|
+
>
|
|
79
|
+
{{.InfoStartTime}}
|
|
80
|
+
</td>
|
|
81
|
+
</tr>
|
|
82
|
+
<tr>
|
|
83
|
+
<th class="odhin-text-2">
|
|
84
|
+
Total Execution Time
|
|
85
|
+
</th>
|
|
86
|
+
<td
|
|
87
|
+
class="text-secondary-emphasis fst-italic"
|
|
88
|
+
>
|
|
89
|
+
{{.InfoTotalExecutionTime}}
|
|
90
|
+
</td>
|
|
91
|
+
</tr>
|
|
92
|
+
{{.InfoRetry}}
|
|
93
|
+
<tr>
|
|
94
|
+
<th class="odhin-text-2 info-tr-space">Test Info</th>
|
|
95
|
+
<td class="text-secondary-emphasis fst-italic info-tr-space" ></td>
|
|
96
|
+
</tr>
|
|
97
|
+
<tr>
|
|
98
|
+
<th class="odhin-text-2">Filename</th>
|
|
99
|
+
<td
|
|
100
|
+
class="text-secondary-emphasis fst-italic"
|
|
101
|
+
>
|
|
102
|
+
{{.InfoFilename}}
|
|
103
|
+
</td>
|
|
104
|
+
</tr>
|
|
105
|
+
{{.InfoTags}}
|
|
106
|
+
{{.InfoAnnotations}}
|
|
107
|
+
</table>
|
|
108
|
+
</div>
|
|
109
|
+
</div>
|
|
110
|
+
</div>
|
|
111
|
+
</div>
|
|
112
|
+
</div>
|
|
113
|
+
<div id="TabSteps-{{.ModalID}}" style="display: none" class="result-tabcontent result-tabcontent-{{.ModalID}}">
|
|
114
|
+
{{.Steps}}
|
|
115
|
+
</div>
|
|
116
|
+
{{.Errors}}
|
|
117
|
+
{{.Screenshots}}
|
|
118
|
+
{{.Videos}}
|
|
119
|
+
{{.Trace}}
|
|
120
|
+
{{.Stdout}}
|
|
121
|
+
{{.Stderr}}
|
|
122
|
+
</div>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
125
|
+
</div>
|
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Reporter, FullConfig, Suite, TestCase, TestResult } from "@playwright/test/reporter";
|
|
2
|
+
import { ExecOptions } from "./types/execOptions.types";
|
|
3
|
+
declare class OdhinPlaywrightReporter implements Reporter {
|
|
4
|
+
private generate;
|
|
5
|
+
constructor(execOptions: ExecOptions);
|
|
6
|
+
onBegin(config: FullConfig, suite: Suite): Promise<void>;
|
|
7
|
+
onTestEnd(testCase: TestCase, result: TestResult): Promise<void>;
|
|
8
|
+
onEnd(): Promise<void>;
|
|
9
|
+
onStdOut(chunk: string): Promise<void>;
|
|
10
|
+
onStdErr(chunk: string): Promise<void>;
|
|
11
|
+
}
|
|
12
|
+
export default OdhinPlaywrightReporter;
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const generate_1 = __importDefault(require("./generate"));
|
|
7
|
+
class OdhinPlaywrightReporter {
|
|
8
|
+
constructor(execOptions) {
|
|
9
|
+
this.generate = new generate_1.default(execOptions);
|
|
10
|
+
}
|
|
11
|
+
async onBegin(config, suite) {
|
|
12
|
+
await this.generate.onBegin(config, suite);
|
|
13
|
+
}
|
|
14
|
+
async onTestEnd(testCase, result) {
|
|
15
|
+
await this.generate.onTestEnd({
|
|
16
|
+
id: testCase.id,
|
|
17
|
+
title: testCase.title,
|
|
18
|
+
filename: testCase["_requireFile"],
|
|
19
|
+
projectId: testCase["_projectId"],
|
|
20
|
+
projectInfo: testCase.parent.parent !== undefined,
|
|
21
|
+
retries: testCase.parent["_entries"][0].retries,
|
|
22
|
+
tags: testCase["_tags"],
|
|
23
|
+
annotations: testCase.annotations,
|
|
24
|
+
}, {
|
|
25
|
+
duration: result.duration,
|
|
26
|
+
status: result.status.toString(),
|
|
27
|
+
retry: result.retry,
|
|
28
|
+
startTime: result.startTime,
|
|
29
|
+
parallelIndex: result.parallelIndex,
|
|
30
|
+
errors: result.errors,
|
|
31
|
+
stderr: result.stderr,
|
|
32
|
+
stdout: result.stdout,
|
|
33
|
+
steps: result.steps,
|
|
34
|
+
attachments: result.attachments,
|
|
35
|
+
workerIndex: result.workerIndex,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async onEnd() {
|
|
39
|
+
await this.generate.onEnd();
|
|
40
|
+
}
|
|
41
|
+
async onStdOut(chunk) {
|
|
42
|
+
await this.generate.onStdOut(chunk);
|
|
43
|
+
}
|
|
44
|
+
async onStdErr(chunk) {
|
|
45
|
+
await this.generate.onStdErr(chunk);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.default = OdhinPlaywrightReporter;
|
package/lib/server.mjs
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
import serveStatic from 'serve-static';
|
|
3
|
+
import openBrowser from 'open';
|
|
4
|
+
|
|
5
|
+
const app = express();
|
|
6
|
+
app.use(serveStatic(process.argv[3], { index: [process.argv[4]] }));
|
|
7
|
+
app.listen(process.argv[2]);
|
|
8
|
+
openBrowser('http://localhost:'+process.argv[2]);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ExecFileInfo {
|
|
2
|
+
filename: string;
|
|
3
|
+
color: string;
|
|
4
|
+
totalPassed: number;
|
|
5
|
+
totalFailed: number;
|
|
6
|
+
totalTimedOut: number;
|
|
7
|
+
totalSkipped: number;
|
|
8
|
+
totalInterrupted: number;
|
|
9
|
+
totalTests: number;
|
|
10
|
+
totalDuration: number;
|
|
11
|
+
startTime: string;
|
|
12
|
+
endTime: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ExecProjectInfo } from "./execProjectInfo.types";
|
|
2
|
+
import { ExecFileInfo } from "./execFileInfo.types";
|
|
3
|
+
export interface ExecInfo {
|
|
4
|
+
projectName: string;
|
|
5
|
+
totalPassed: number;
|
|
6
|
+
totalFailed: number;
|
|
7
|
+
totalTimedOut: number;
|
|
8
|
+
totalSkipped: number;
|
|
9
|
+
totalInterrupted: number;
|
|
10
|
+
totalTests: number;
|
|
11
|
+
startTime: string;
|
|
12
|
+
endTime: string;
|
|
13
|
+
execFiles: ExecFileInfo[];
|
|
14
|
+
execProjects: ExecProjectInfo[];
|
|
15
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface ExecOptions {
|
|
2
|
+
testFolder: string;
|
|
3
|
+
title: string;
|
|
4
|
+
testEnvironment: string;
|
|
5
|
+
project: string;
|
|
6
|
+
release: string;
|
|
7
|
+
embedAssets: boolean;
|
|
8
|
+
embedAttachments: boolean;
|
|
9
|
+
outputFolder: string;
|
|
10
|
+
startServer: boolean;
|
|
11
|
+
consoleLog: boolean;
|
|
12
|
+
consoleError: boolean;
|
|
13
|
+
consoleTestOutput: boolean;
|
|
14
|
+
simpleConsoleLog: boolean;
|
|
15
|
+
initialTheme: string;
|
|
16
|
+
indexFilename: string;
|
|
17
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface ExecProjectInfo {
|
|
2
|
+
project: string;
|
|
3
|
+
color: string;
|
|
4
|
+
totalPassed: number;
|
|
5
|
+
totalFailed: number;
|
|
6
|
+
totalTimedOut: number;
|
|
7
|
+
totalSkipped: number;
|
|
8
|
+
totalInterrupted: number;
|
|
9
|
+
totalTests: number;
|
|
10
|
+
totalDuration: number;
|
|
11
|
+
startTime: string;
|
|
12
|
+
endTime: string;
|
|
13
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ExecTestCase {
|
|
2
|
+
id: string;
|
|
3
|
+
title: string;
|
|
4
|
+
filename: string;
|
|
5
|
+
projectId: string;
|
|
6
|
+
projectInfo: boolean;
|
|
7
|
+
retries: number;
|
|
8
|
+
tags: string[];
|
|
9
|
+
annotations: Annotation[];
|
|
10
|
+
}
|
|
11
|
+
export interface Annotation {
|
|
12
|
+
type: string;
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface ExecTestResult {
|
|
2
|
+
id?: string;
|
|
3
|
+
duration: number;
|
|
4
|
+
status: string;
|
|
5
|
+
retry: number;
|
|
6
|
+
startTime: Date;
|
|
7
|
+
parallelIndex: number;
|
|
8
|
+
errors: Array<TestError>;
|
|
9
|
+
stderr: Array<string | Buffer>;
|
|
10
|
+
stdout: Array<string | Buffer>;
|
|
11
|
+
steps: Array<TestStep>;
|
|
12
|
+
attachments: Array<TestAttachment>;
|
|
13
|
+
workerIndex: number;
|
|
14
|
+
}
|
|
15
|
+
export interface TestError {
|
|
16
|
+
location?: Location;
|
|
17
|
+
message?: string;
|
|
18
|
+
snippet?: string;
|
|
19
|
+
stack?: string;
|
|
20
|
+
value?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface TestStep {
|
|
23
|
+
id?: string;
|
|
24
|
+
category: string;
|
|
25
|
+
duration: number;
|
|
26
|
+
error?: TestError;
|
|
27
|
+
location?: Location;
|
|
28
|
+
parent?: TestStep;
|
|
29
|
+
startTime: Date;
|
|
30
|
+
steps: Array<TestStep>;
|
|
31
|
+
title: string;
|
|
32
|
+
}
|
|
33
|
+
export interface TestAttachment {
|
|
34
|
+
name: string;
|
|
35
|
+
contentType: string;
|
|
36
|
+
path?: string;
|
|
37
|
+
body?: Buffer;
|
|
38
|
+
}
|
|
39
|
+
export interface Location {
|
|
40
|
+
column: number;
|
|
41
|
+
file: string;
|
|
42
|
+
line: number;
|
|
43
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface OnProject {
|
|
2
|
+
method: string;
|
|
3
|
+
params: Params;
|
|
4
|
+
}
|
|
5
|
+
export interface Params {
|
|
6
|
+
project: Project;
|
|
7
|
+
}
|
|
8
|
+
export interface Project {
|
|
9
|
+
id: string;
|
|
10
|
+
name: string;
|
|
11
|
+
outputDir: string;
|
|
12
|
+
repeatEach: number;
|
|
13
|
+
retries: number;
|
|
14
|
+
testDir: string;
|
|
15
|
+
testIgnore: any[];
|
|
16
|
+
testMatch: TestMatch[];
|
|
17
|
+
timeout: number;
|
|
18
|
+
suites: Suite[];
|
|
19
|
+
grep: Grep[];
|
|
20
|
+
grepInvert: any[];
|
|
21
|
+
dependencies: any[];
|
|
22
|
+
snapshotDir: string;
|
|
23
|
+
}
|
|
24
|
+
export interface Grep {
|
|
25
|
+
r: R;
|
|
26
|
+
}
|
|
27
|
+
export interface R {
|
|
28
|
+
source: string;
|
|
29
|
+
flags: string;
|
|
30
|
+
}
|
|
31
|
+
export interface Suite {
|
|
32
|
+
type: string;
|
|
33
|
+
title: string;
|
|
34
|
+
fileId: string;
|
|
35
|
+
parallelMode: string;
|
|
36
|
+
location: Location;
|
|
37
|
+
suites: Suite[];
|
|
38
|
+
tests: Test[];
|
|
39
|
+
}
|
|
40
|
+
export interface Location {
|
|
41
|
+
file: string;
|
|
42
|
+
line: number;
|
|
43
|
+
column: number;
|
|
44
|
+
}
|
|
45
|
+
export interface Test {
|
|
46
|
+
testId: string;
|
|
47
|
+
title: string;
|
|
48
|
+
location: Location;
|
|
49
|
+
retries: number;
|
|
50
|
+
}
|
|
51
|
+
export interface TestMatch {
|
|
52
|
+
s: string;
|
|
53
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface OnStepBegin {
|
|
2
|
+
method: string;
|
|
3
|
+
params: Params;
|
|
4
|
+
}
|
|
5
|
+
export interface Params {
|
|
6
|
+
testId: string;
|
|
7
|
+
resultId: string;
|
|
8
|
+
step: Step;
|
|
9
|
+
}
|
|
10
|
+
export interface Step {
|
|
11
|
+
id: string;
|
|
12
|
+
title: string;
|
|
13
|
+
category: string;
|
|
14
|
+
startTime: number;
|
|
15
|
+
location: Location;
|
|
16
|
+
parentStepId: string;
|
|
17
|
+
}
|
|
18
|
+
export interface Location {
|
|
19
|
+
file: string;
|
|
20
|
+
line: number;
|
|
21
|
+
column: number;
|
|
22
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface OnStepEnd {
|
|
2
|
+
method: string;
|
|
3
|
+
params: Params;
|
|
4
|
+
}
|
|
5
|
+
export interface Params {
|
|
6
|
+
testId: string;
|
|
7
|
+
resultId: string;
|
|
8
|
+
step: Step;
|
|
9
|
+
}
|
|
10
|
+
export interface Step {
|
|
11
|
+
id: string;
|
|
12
|
+
duration: number;
|
|
13
|
+
error: Error;
|
|
14
|
+
}
|
|
15
|
+
export interface Error {
|
|
16
|
+
message: string;
|
|
17
|
+
stack: string;
|
|
18
|
+
location: Location;
|
|
19
|
+
snippet: string;
|
|
20
|
+
}
|
|
21
|
+
export interface Location {
|
|
22
|
+
file: string;
|
|
23
|
+
column: number;
|
|
24
|
+
line: number;
|
|
25
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface OnTestBegin {
|
|
2
|
+
method: string;
|
|
3
|
+
params: Params;
|
|
4
|
+
}
|
|
5
|
+
export interface Params {
|
|
6
|
+
testId: string;
|
|
7
|
+
result: Result;
|
|
8
|
+
}
|
|
9
|
+
export interface Result {
|
|
10
|
+
id: string;
|
|
11
|
+
retry: number;
|
|
12
|
+
workerIndex: number;
|
|
13
|
+
parallelIndex: number;
|
|
14
|
+
startTime: number;
|
|
15
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export interface OnTestEnd {
|
|
2
|
+
method: string;
|
|
3
|
+
params: Params;
|
|
4
|
+
}
|
|
5
|
+
export interface Params {
|
|
6
|
+
test: Test;
|
|
7
|
+
result: Result;
|
|
8
|
+
}
|
|
9
|
+
export interface Result {
|
|
10
|
+
id: string;
|
|
11
|
+
duration: number;
|
|
12
|
+
status: string;
|
|
13
|
+
errors: Error[];
|
|
14
|
+
attachments: Attachment[];
|
|
15
|
+
}
|
|
16
|
+
export interface Attachment {
|
|
17
|
+
name: string;
|
|
18
|
+
path: string;
|
|
19
|
+
contentType: string;
|
|
20
|
+
}
|
|
21
|
+
export interface Error {
|
|
22
|
+
message: string;
|
|
23
|
+
stack: string;
|
|
24
|
+
location: Location;
|
|
25
|
+
snippet: string;
|
|
26
|
+
}
|
|
27
|
+
export interface Location {
|
|
28
|
+
file: string;
|
|
29
|
+
column: number;
|
|
30
|
+
line: number;
|
|
31
|
+
}
|
|
32
|
+
export interface Test {
|
|
33
|
+
testId: string;
|
|
34
|
+
expectedStatus: string;
|
|
35
|
+
annotations: any[];
|
|
36
|
+
timeout: number;
|
|
37
|
+
}
|