@lokalise/playwright-reporters 1.3.0 → 1.4.0-beta.2
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/README.md +7 -3
- package/dist/playwright.config.js +3 -3
- package/dist/playwright.config.js.map +1 -1
- package/dist/src/analytics/elastic.d.ts +4 -1
- package/dist/src/analytics/elastic.js +14 -3
- package/dist/src/analytics/elastic.js.map +1 -1
- package/dist/src/analytics/logger.js.map +1 -1
- package/dist/src/analytics/reporter.d.ts +21 -8
- package/dist/src/analytics/reporter.js +88 -16
- package/dist/src/analytics/reporter.js.map +1 -1
- package/dist/src/analytics/tests/browserUsage.test.d.ts +1 -0
- package/dist/src/analytics/tests/browserUsage.test.js +42 -0
- package/dist/src/analytics/tests/browserUsage.test.js.map +1 -0
- package/dist/src/analytics/tests/transform.test.js +77 -77
- package/dist/src/analytics/tests/transform.test.js.map +1 -1
- package/dist/src/analytics/transform.d.ts +25 -10
- package/dist/src/analytics/transform.js +43 -19
- package/dist/src/analytics/transform.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/retry/reporter.d.ts +1 -1
- package/dist/src/retry/reporter.js +30 -32
- package/dist/src/retry/reporter.js.map +1 -1
- package/package.json +20 -17
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const test_1 = require("@playwright/test");
|
|
4
4
|
const transform_1 = require("../transform");
|
|
5
|
-
test_1.test.describe(
|
|
6
|
-
(0, test_1.test)(
|
|
7
|
-
const formedTestData = (0, transform_1.formFailedTestData)({ title:
|
|
5
|
+
test_1.test.describe('Analytics: data transform', () => {
|
|
6
|
+
(0, test_1.test)('should form failed test data', () => {
|
|
7
|
+
const formedTestData = (0, transform_1.formFailedTestData)({ title: 'hello' }, {
|
|
8
8
|
startTime: new Date(),
|
|
9
9
|
steps: [
|
|
10
|
-
{ title:
|
|
11
|
-
{ title:
|
|
10
|
+
{ title: 'before hooks', duration: 123 },
|
|
11
|
+
{ title: 'after hooks', duration: 234 },
|
|
12
12
|
],
|
|
13
|
-
status:
|
|
13
|
+
status: 'passed',
|
|
14
14
|
duration: 1234,
|
|
15
15
|
retry: 2,
|
|
16
|
-
},
|
|
16
|
+
}, 'testRunId');
|
|
17
17
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
18
18
|
timestamp: test_1.expect.any(Number),
|
|
19
|
-
name:
|
|
20
|
-
testRunId:
|
|
21
|
-
status:
|
|
19
|
+
name: 'hello',
|
|
20
|
+
testRunId: 'testRunId',
|
|
21
|
+
status: 'passed',
|
|
22
22
|
hooksDuration: 357,
|
|
23
23
|
beforeHookDuration: 123,
|
|
24
24
|
afterHookDuration: 234,
|
|
@@ -28,22 +28,22 @@ test_1.test.describe("Analytics: data transform", () => {
|
|
|
28
28
|
retry: 2,
|
|
29
29
|
});
|
|
30
30
|
});
|
|
31
|
-
(0, test_1.test)(
|
|
32
|
-
const formedTestData = (0, transform_1.formFlakyTestData)({ title:
|
|
31
|
+
(0, test_1.test)('should form flaky test data', () => {
|
|
32
|
+
const formedTestData = (0, transform_1.formFlakyTestData)({ title: 'hello' }, {
|
|
33
33
|
startTime: new Date(),
|
|
34
34
|
steps: [
|
|
35
|
-
{ title:
|
|
36
|
-
{ title:
|
|
35
|
+
{ title: 'before hooks', duration: 123 },
|
|
36
|
+
{ title: 'after hooks', duration: 234 },
|
|
37
37
|
],
|
|
38
|
-
status:
|
|
38
|
+
status: 'passed',
|
|
39
39
|
duration: 1234,
|
|
40
40
|
retry: 2,
|
|
41
|
-
},
|
|
41
|
+
}, 'testRunId');
|
|
42
42
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
43
43
|
timestamp: test_1.expect.any(Number),
|
|
44
|
-
name:
|
|
45
|
-
testRunId:
|
|
46
|
-
status:
|
|
44
|
+
name: 'hello',
|
|
45
|
+
testRunId: 'testRunId',
|
|
46
|
+
status: 'passed',
|
|
47
47
|
hooksDuration: 357,
|
|
48
48
|
beforeHookDuration: 123,
|
|
49
49
|
afterHookDuration: 234,
|
|
@@ -53,69 +53,69 @@ test_1.test.describe("Analytics: data transform", () => {
|
|
|
53
53
|
retry: 2,
|
|
54
54
|
});
|
|
55
55
|
});
|
|
56
|
-
(0, test_1.test)(
|
|
57
|
-
process.env.BUILD_ID =
|
|
56
|
+
(0, test_1.test)('should form build data', () => {
|
|
57
|
+
process.env.BUILD_ID = '983';
|
|
58
58
|
const buildData = (0, transform_1.formBuildData)({
|
|
59
|
-
result: { status:
|
|
59
|
+
result: { status: 'passed' },
|
|
60
60
|
startTime: 10,
|
|
61
61
|
endTime: 1234,
|
|
62
62
|
numberOfTests: 666,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
testRunId: "testRunId",
|
|
63
|
+
browserCreationTimes: [945],
|
|
64
|
+
testRunId: 'testRunId',
|
|
66
65
|
project: { e2e: false, api: true, regression: false },
|
|
67
|
-
failedTests: [{ name:
|
|
66
|
+
failedTests: [{ name: 'some failed test' }],
|
|
68
67
|
flakyTests: [
|
|
69
|
-
{ name:
|
|
70
|
-
{ name:
|
|
68
|
+
{ name: 'some flaky test', totalDuration: 123 },
|
|
69
|
+
{ name: 'another flaky test', totalDuration: 234 },
|
|
71
70
|
],
|
|
72
71
|
teamStats: { MAX: 999 },
|
|
73
|
-
buildId:
|
|
72
|
+
buildId: '0001-02983',
|
|
73
|
+
prenvId: 'prenvId',
|
|
74
74
|
});
|
|
75
75
|
(0, test_1.expect)(buildData).toEqual({
|
|
76
|
-
result:
|
|
76
|
+
result: 'passed',
|
|
77
77
|
startTime: 10,
|
|
78
78
|
endTime: 1234,
|
|
79
79
|
numberOfTests: 666,
|
|
80
80
|
browserCreation: 945,
|
|
81
|
-
|
|
82
|
-
testRunId: "testRunId",
|
|
81
|
+
testRunId: 'testRunId',
|
|
83
82
|
project: { e2e: false, api: true, regression: false },
|
|
84
83
|
duration: 1224,
|
|
85
84
|
failedTestCount: 1,
|
|
86
85
|
flakyTestCount: 2,
|
|
87
86
|
timeSpentOnRetry: 357,
|
|
88
87
|
teamStats: { MAX: 999 },
|
|
89
|
-
buildId:
|
|
88
|
+
buildId: '0001-02983',
|
|
89
|
+
prenvId: 'prenvId',
|
|
90
90
|
});
|
|
91
91
|
});
|
|
92
92
|
(0, test_1.test)("should include first team's name in failed test", () => {
|
|
93
93
|
const formedTestData = (0, transform_1.formFailedTestData)({
|
|
94
|
-
title:
|
|
94
|
+
title: 'hello',
|
|
95
95
|
annotations: [
|
|
96
|
-
{ type:
|
|
97
|
-
{ type:
|
|
98
|
-
{ type:
|
|
96
|
+
{ type: 'somethingElse', description: 'notATeam' },
|
|
97
|
+
{ type: 'owner', description: 'firstTeam' },
|
|
98
|
+
{ type: 'owner', description: 'secondTeam' },
|
|
99
99
|
],
|
|
100
100
|
}, {
|
|
101
101
|
startTime: new Date(),
|
|
102
102
|
steps: [
|
|
103
|
-
{ title:
|
|
104
|
-
{ title:
|
|
103
|
+
{ title: 'before hooks', duration: 123 },
|
|
104
|
+
{ title: 'after hooks', duration: 234 },
|
|
105
105
|
],
|
|
106
|
-
status:
|
|
106
|
+
status: 'passed',
|
|
107
107
|
duration: 1234,
|
|
108
108
|
retry: 2,
|
|
109
|
-
},
|
|
109
|
+
}, 'testRunId');
|
|
110
110
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
111
111
|
timestamp: test_1.expect.any(Number),
|
|
112
|
-
name:
|
|
113
|
-
testRunId:
|
|
114
|
-
status:
|
|
112
|
+
name: 'hello',
|
|
113
|
+
testRunId: 'testRunId',
|
|
114
|
+
status: 'passed',
|
|
115
115
|
hooksDuration: 357,
|
|
116
116
|
beforeHookDuration: 123,
|
|
117
117
|
afterHookDuration: 234,
|
|
118
|
-
team:
|
|
118
|
+
team: 'firstTeam',
|
|
119
119
|
testDuration: 1234,
|
|
120
120
|
totalDuration: 1591,
|
|
121
121
|
project: { default: true },
|
|
@@ -124,53 +124,53 @@ test_1.test.describe("Analytics: data transform", () => {
|
|
|
124
124
|
});
|
|
125
125
|
(0, test_1.test)("should include first team's name in flaky test", () => {
|
|
126
126
|
const formedTestData = (0, transform_1.formFlakyTestData)({
|
|
127
|
-
title:
|
|
127
|
+
title: 'hello',
|
|
128
128
|
annotations: [
|
|
129
|
-
{ type:
|
|
130
|
-
{ type:
|
|
131
|
-
{ type:
|
|
129
|
+
{ type: 'somethingElse', description: 'notATeam' },
|
|
130
|
+
{ type: 'owner', description: 'firstTeam' },
|
|
131
|
+
{ type: 'owner', description: 'secondTeam' },
|
|
132
132
|
],
|
|
133
133
|
}, {
|
|
134
134
|
startTime: new Date(),
|
|
135
135
|
steps: [
|
|
136
|
-
{ title:
|
|
137
|
-
{ title:
|
|
136
|
+
{ title: 'before hooks', duration: 123 },
|
|
137
|
+
{ title: 'after hooks', duration: 234 },
|
|
138
138
|
],
|
|
139
|
-
status:
|
|
139
|
+
status: 'passed',
|
|
140
140
|
duration: 1234,
|
|
141
141
|
retry: 2,
|
|
142
|
-
},
|
|
142
|
+
}, 'testRunId');
|
|
143
143
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
144
144
|
timestamp: test_1.expect.any(Number),
|
|
145
|
-
name:
|
|
146
|
-
testRunId:
|
|
147
|
-
status:
|
|
145
|
+
name: 'hello',
|
|
146
|
+
testRunId: 'testRunId',
|
|
147
|
+
status: 'passed',
|
|
148
148
|
hooksDuration: 357,
|
|
149
149
|
beforeHookDuration: 123,
|
|
150
150
|
afterHookDuration: 234,
|
|
151
|
-
team:
|
|
151
|
+
team: 'firstTeam',
|
|
152
152
|
testDuration: 1234,
|
|
153
153
|
totalDuration: 1591,
|
|
154
154
|
project: { default: true },
|
|
155
155
|
retry: 2,
|
|
156
156
|
});
|
|
157
157
|
});
|
|
158
|
-
(0, test_1.test)(
|
|
159
|
-
const formedTestData = (0, transform_1.formFailedTestData)({ title:
|
|
158
|
+
(0, test_1.test)('should include prenvId in failed test', () => {
|
|
159
|
+
const formedTestData = (0, transform_1.formFailedTestData)({ title: 'hello' }, {
|
|
160
160
|
startTime: new Date(),
|
|
161
161
|
steps: [
|
|
162
|
-
{ title:
|
|
163
|
-
{ title:
|
|
162
|
+
{ title: 'before hooks', duration: 123 },
|
|
163
|
+
{ title: 'after hooks', duration: 234 },
|
|
164
164
|
],
|
|
165
|
-
status:
|
|
165
|
+
status: 'passed',
|
|
166
166
|
duration: 1234,
|
|
167
167
|
retry: 2,
|
|
168
|
-
},
|
|
168
|
+
}, 'testRunId', 'prenvId');
|
|
169
169
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
170
170
|
timestamp: test_1.expect.any(Number),
|
|
171
|
-
name:
|
|
172
|
-
testRunId:
|
|
173
|
-
status:
|
|
171
|
+
name: 'hello',
|
|
172
|
+
testRunId: 'testRunId',
|
|
173
|
+
status: 'passed',
|
|
174
174
|
hooksDuration: 357,
|
|
175
175
|
beforeHookDuration: 123,
|
|
176
176
|
afterHookDuration: 234,
|
|
@@ -178,25 +178,25 @@ test_1.test.describe("Analytics: data transform", () => {
|
|
|
178
178
|
totalDuration: 1591,
|
|
179
179
|
project: { default: true },
|
|
180
180
|
retry: 2,
|
|
181
|
-
prenvId:
|
|
181
|
+
prenvId: 'prenvId',
|
|
182
182
|
});
|
|
183
183
|
});
|
|
184
|
-
(0, test_1.test)(
|
|
185
|
-
const formedTestData = (0, transform_1.formFlakyTestData)({ title:
|
|
184
|
+
(0, test_1.test)('should include prenvId in flaky test', () => {
|
|
185
|
+
const formedTestData = (0, transform_1.formFlakyTestData)({ title: 'hello' }, {
|
|
186
186
|
startTime: new Date(),
|
|
187
187
|
steps: [
|
|
188
|
-
{ title:
|
|
189
|
-
{ title:
|
|
188
|
+
{ title: 'before hooks', duration: 123 },
|
|
189
|
+
{ title: 'after hooks', duration: 234 },
|
|
190
190
|
],
|
|
191
|
-
status:
|
|
191
|
+
status: 'passed',
|
|
192
192
|
duration: 1234,
|
|
193
193
|
retry: 2,
|
|
194
|
-
},
|
|
194
|
+
}, 'testRunId', 'prenvId');
|
|
195
195
|
(0, test_1.expect)(formedTestData).toMatchObject({
|
|
196
196
|
timestamp: test_1.expect.any(Number),
|
|
197
|
-
name:
|
|
198
|
-
testRunId:
|
|
199
|
-
status:
|
|
197
|
+
name: 'hello',
|
|
198
|
+
testRunId: 'testRunId',
|
|
199
|
+
status: 'passed',
|
|
200
200
|
hooksDuration: 357,
|
|
201
201
|
beforeHookDuration: 123,
|
|
202
202
|
afterHookDuration: 234,
|
|
@@ -204,7 +204,7 @@ test_1.test.describe("Analytics: data transform", () => {
|
|
|
204
204
|
totalDuration: 1591,
|
|
205
205
|
project: { default: true },
|
|
206
206
|
retry: 2,
|
|
207
|
-
prenvId:
|
|
207
|
+
prenvId: 'prenvId',
|
|
208
208
|
});
|
|
209
209
|
});
|
|
210
210
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.test.js","sourceRoot":"","sources":["../../../../src/analytics/tests/transform.test.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"transform.test.js","sourceRoot":"","sources":["../../../../src/analytics/tests/transform.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type FullResult, type TestCase, type TestResult, type TestStep } from
|
|
2
|
-
import type AnalyticsReporter from
|
|
3
|
-
import { type TestAnalyticsData } from
|
|
1
|
+
import { type FullResult, type TestCase, type TestResult, type TestStep } from '@playwright/test/reporter';
|
|
2
|
+
import type AnalyticsReporter from './reporter';
|
|
3
|
+
import { type BrowserUsageData, type TestAnalyticsData } from './reporter';
|
|
4
4
|
export declare const calculateRuntime: (startTime: number) => void;
|
|
5
|
-
export declare const calculateRetriedTests: (listOfNonPassingTests: AnalyticsReporter[
|
|
6
|
-
export declare const calculateHooksDuration: (steps: TestStep[], hook:
|
|
5
|
+
export declare const calculateRetriedTests: (listOfNonPassingTests: AnalyticsReporter['listOfNonPassingTests']) => void;
|
|
6
|
+
export declare const calculateHooksDuration: (steps: TestStep[], hook: 'before' | 'after') => number;
|
|
7
7
|
export declare const getTeamNames: (test: TestCase) => {
|
|
8
8
|
type: string;
|
|
9
9
|
description?: string | undefined;
|
|
@@ -43,12 +43,11 @@ export declare const formFlakyTestData: (test: TestCase, result: TestResult, tes
|
|
|
43
43
|
};
|
|
44
44
|
};
|
|
45
45
|
export declare const formBuildData: (args: {
|
|
46
|
-
result: Pick<FullResult,
|
|
46
|
+
result: Pick<FullResult, 'status'>;
|
|
47
47
|
startTime: number;
|
|
48
48
|
endTime: number;
|
|
49
49
|
numberOfTests: number;
|
|
50
|
-
|
|
51
|
-
browserClose: number;
|
|
50
|
+
browserCreationTimes: number[];
|
|
52
51
|
testRunId: string;
|
|
53
52
|
project: Record<string, boolean>;
|
|
54
53
|
failedTests: TestAnalyticsData[];
|
|
@@ -62,7 +61,6 @@ export declare const formBuildData: (args: {
|
|
|
62
61
|
endTime: number;
|
|
63
62
|
numberOfTests: number;
|
|
64
63
|
browserCreation: number;
|
|
65
|
-
browserClose: number;
|
|
66
64
|
testRunId: string;
|
|
67
65
|
project: Record<string, boolean>;
|
|
68
66
|
duration: number;
|
|
@@ -73,10 +71,27 @@ export declare const formBuildData: (args: {
|
|
|
73
71
|
buildId: string;
|
|
74
72
|
prenvId: string | undefined;
|
|
75
73
|
};
|
|
76
|
-
export declare const addTeamCount: (teamStats: TeamStats, ownerTestAnnotations: TestCase[
|
|
74
|
+
export declare const addTeamCount: (teamStats: TeamStats, ownerTestAnnotations: TestCase['annotations']) => {
|
|
77
75
|
[x: string]: number;
|
|
78
76
|
};
|
|
79
77
|
export declare const getBuildIdWithPrefix: (lastRunData: string | null, currentBuildId: string) => string;
|
|
78
|
+
export declare const formBrowserUsageData: (args: {
|
|
79
|
+
startTime: number;
|
|
80
|
+
testRunId: string;
|
|
81
|
+
isMainPREnv: boolean;
|
|
82
|
+
browserUsage: BrowserUsageData;
|
|
83
|
+
workerCount: number;
|
|
84
|
+
product: string;
|
|
85
|
+
}) => {
|
|
86
|
+
timestamp: number;
|
|
87
|
+
testRunId: string;
|
|
88
|
+
isMain: boolean;
|
|
89
|
+
workerCount: number;
|
|
90
|
+
product: string;
|
|
91
|
+
createdBrowserCount: number;
|
|
92
|
+
browserUsageFromRequest: number;
|
|
93
|
+
browserUsageAfterCreation: number;
|
|
94
|
+
};
|
|
80
95
|
type TeamName = string;
|
|
81
96
|
export type TeamStats = Record<TeamName, number>;
|
|
82
97
|
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getBuildIdWithPrefix = exports.addTeamCount = exports.formBuildData = exports.formFlakyTestData = exports.formFailedTestData = exports.getTeamNames = exports.calculateHooksDuration = exports.calculateRetriedTests = exports.calculateRuntime = void 0;
|
|
3
|
+
exports.formBrowserUsageData = exports.getBuildIdWithPrefix = exports.addTeamCount = exports.formBuildData = exports.formFlakyTestData = exports.formFailedTestData = exports.getTeamNames = exports.calculateHooksDuration = exports.calculateRetriedTests = exports.calculateRuntime = void 0;
|
|
4
4
|
const logger_1 = require("./logger");
|
|
5
5
|
const calculateRuntime = (startTime) => {
|
|
6
6
|
const currentTime = Date.now();
|
|
@@ -25,15 +25,15 @@ const calculateHooksDuration = (steps, hook) => {
|
|
|
25
25
|
};
|
|
26
26
|
exports.calculateHooksDuration = calculateHooksDuration;
|
|
27
27
|
const getTeamNames = (test) => {
|
|
28
|
-
return test?.annotations?.filter((annotation) => annotation.type ===
|
|
28
|
+
return test?.annotations?.filter((annotation) => annotation.type === 'owner');
|
|
29
29
|
};
|
|
30
30
|
exports.getTeamNames = getTeamNames;
|
|
31
31
|
const baseTestData = (test, result, testRunId, prenvId) => {
|
|
32
32
|
const { startTime, steps, status, duration, retry } = result;
|
|
33
|
-
const beforeHookDuration = (0, exports.calculateHooksDuration)(steps,
|
|
34
|
-
const afterHookDuration = (0, exports.calculateHooksDuration)(steps,
|
|
33
|
+
const beforeHookDuration = (0, exports.calculateHooksDuration)(steps, 'before');
|
|
34
|
+
const afterHookDuration = (0, exports.calculateHooksDuration)(steps, 'after');
|
|
35
35
|
const totalHooksDuration = beforeHookDuration + afterHookDuration;
|
|
36
|
-
const parentTestProjectName = test?.parent?.project()?.name ??
|
|
36
|
+
const parentTestProjectName = test?.parent?.project()?.name ?? 'default';
|
|
37
37
|
return {
|
|
38
38
|
timestamp: startTime.getTime(),
|
|
39
39
|
name: test.title,
|
|
@@ -64,13 +64,13 @@ const formBuildData = (args) => {
|
|
|
64
64
|
const timeSpentOnRetry = args.flakyTests.reduce((acc, current) => {
|
|
65
65
|
return acc + current.totalDuration;
|
|
66
66
|
}, 0);
|
|
67
|
+
const browserCreation = args.browserCreationTimes.reduce((acc, current) => acc + current, 0);
|
|
67
68
|
return {
|
|
68
69
|
result: args.result.status,
|
|
69
70
|
startTime: args.startTime,
|
|
70
71
|
endTime: args.endTime,
|
|
71
72
|
numberOfTests: args.numberOfTests,
|
|
72
|
-
browserCreation
|
|
73
|
-
browserClose: args.browserClose,
|
|
73
|
+
browserCreation,
|
|
74
74
|
testRunId: args.testRunId,
|
|
75
75
|
project: args.project,
|
|
76
76
|
duration: args.endTime - args.startTime,
|
|
@@ -86,9 +86,7 @@ exports.formBuildData = formBuildData;
|
|
|
86
86
|
const addTeamCount = (teamStats, ownerTestAnnotations) => {
|
|
87
87
|
const newTeamStats = { ...teamStats };
|
|
88
88
|
const testOwnerCount = ownerTestAnnotations.reduce((previous, current) => {
|
|
89
|
-
const parsedTeamNameAnnotation = current.description
|
|
90
|
-
? current.description.split(",")
|
|
91
|
-
: [];
|
|
89
|
+
const parsedTeamNameAnnotation = current.description ? current.description.split(',') : [];
|
|
92
90
|
if (!parsedTeamNameAnnotation.length)
|
|
93
91
|
return {};
|
|
94
92
|
const newData = { ...previous };
|
|
@@ -102,25 +100,51 @@ const addTeamCount = (teamStats, ownerTestAnnotations) => {
|
|
|
102
100
|
};
|
|
103
101
|
exports.addTeamCount = addTeamCount;
|
|
104
102
|
const getBuildIdWithPrefix = (lastRunData, currentBuildId) => {
|
|
105
|
-
const lastBuildIdWithPrefix = lastRunData ??
|
|
103
|
+
const lastBuildIdWithPrefix = lastRunData ?? '0001-00001';
|
|
106
104
|
const previousPrefix = (() => {
|
|
107
|
-
const defaultPrefix =
|
|
108
|
-
if (lastBuildIdWithPrefix.includes(
|
|
109
|
-
return lastBuildIdWithPrefix.split(
|
|
105
|
+
const defaultPrefix = '0001';
|
|
106
|
+
if (lastBuildIdWithPrefix.includes('-')) {
|
|
107
|
+
return lastBuildIdWithPrefix.split('-').at(0) ?? defaultPrefix;
|
|
110
108
|
}
|
|
111
109
|
return defaultPrefix;
|
|
112
110
|
})();
|
|
113
111
|
const lastBuildId = (() => {
|
|
114
|
-
if (lastBuildIdWithPrefix.includes(
|
|
115
|
-
return lastBuildIdWithPrefix.split(
|
|
112
|
+
if (lastBuildIdWithPrefix.includes('-')) {
|
|
113
|
+
return lastBuildIdWithPrefix.split('-').at(1);
|
|
116
114
|
}
|
|
117
115
|
return lastBuildIdWithPrefix;
|
|
118
116
|
})();
|
|
119
117
|
if (Number(currentBuildId) < Number(lastBuildId)) {
|
|
120
|
-
const newPrefix = String(Number(previousPrefix) + 1).padStart(4,
|
|
121
|
-
return `${newPrefix}-${currentBuildId.padStart(5,
|
|
118
|
+
const newPrefix = String(Number(previousPrefix) + 1).padStart(4, '0');
|
|
119
|
+
return `${newPrefix}-${currentBuildId.padStart(5, '0')}`;
|
|
122
120
|
}
|
|
123
|
-
return `${previousPrefix}-${currentBuildId.padStart(5,
|
|
121
|
+
return `${previousPrefix}-${currentBuildId.padStart(5, '0')}`;
|
|
124
122
|
};
|
|
125
123
|
exports.getBuildIdWithPrefix = getBuildIdWithPrefix;
|
|
124
|
+
// eslint-disable-next-line max-statements
|
|
125
|
+
const formBrowserUsageData = (args) => {
|
|
126
|
+
let browserUsageFromRequest = 0;
|
|
127
|
+
let browserUsageAfterCreation = 0;
|
|
128
|
+
for (const testId in args.browserUsage.data) {
|
|
129
|
+
const browserUsageForTest = args.browserUsage.data[testId];
|
|
130
|
+
const { browserRequestTimestamp, browserCreationTimestamp, browserCloseTimestamp } = browserUsageForTest;
|
|
131
|
+
if (browserRequestTimestamp && browserCloseTimestamp) {
|
|
132
|
+
browserUsageFromRequest += browserCloseTimestamp - browserRequestTimestamp;
|
|
133
|
+
}
|
|
134
|
+
if (browserCreationTimestamp && browserCloseTimestamp) {
|
|
135
|
+
browserUsageAfterCreation += browserCloseTimestamp - browserCreationTimestamp;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
timestamp: args.startTime,
|
|
140
|
+
testRunId: args.testRunId,
|
|
141
|
+
isMain: args.isMainPREnv,
|
|
142
|
+
workerCount: args.workerCount,
|
|
143
|
+
product: args.product,
|
|
144
|
+
createdBrowserCount: args.browserUsage.createdBrowserCount,
|
|
145
|
+
browserUsageFromRequest,
|
|
146
|
+
browserUsageAfterCreation,
|
|
147
|
+
};
|
|
148
|
+
};
|
|
149
|
+
exports.formBrowserUsageData = formBrowserUsageData;
|
|
126
150
|
//# sourceMappingURL=transform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/analytics/transform.ts"],"names":[],"mappings":";;;AAOA,
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/analytics/transform.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import AnalyticsReporter, { defineAnalyticsReporterConfig } from
|
|
2
|
-
import RetryReporter, { defineRetryReporterConfig } from
|
|
1
|
+
import AnalyticsReporter, { defineAnalyticsReporterConfig } from './analytics/reporter';
|
|
2
|
+
import RetryReporter, { defineRetryReporterConfig } from './retry/reporter';
|
|
3
3
|
export { AnalyticsReporter, defineAnalyticsReporterConfig, RetryReporter, defineRetryReporterConfig, };
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAAuF;AAItF,4BAJM,kBAAiB,CAIN;AACjB,8GAL2B,wCAA6B,OAK3B;AAJ9B,6DAA2E;AAK1E,wBALM,kBAAa,CAKN;AACb,0GANuB,oCAAyB,OAMvB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type FullResult, type Reporter, type TestCase, type TestResult, type TestError } from
|
|
1
|
+
import { type FullResult, type Reporter, type TestCase, type TestResult, type TestError } from '@playwright/test/reporter';
|
|
2
2
|
export default class RetryReporter implements Reporter {
|
|
3
3
|
private readonly failedTestNames;
|
|
4
4
|
private readonly flakyTestNames;
|