@nsxbet/playwright-orchestrator 0.4.1 → 0.5.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/README.md +54 -7
- package/dist/commands/assign.d.ts.map +1 -1
- package/dist/commands/assign.js +7 -48
- package/dist/commands/assign.js.map +1 -1
- package/dist/commands/extract-timing.d.ts +1 -12
- package/dist/commands/extract-timing.d.ts.map +1 -1
- package/dist/commands/extract-timing.js +15 -84
- package/dist/commands/extract-timing.js.map +1 -1
- package/dist/commands/merge-timing.d.ts +1 -4
- package/dist/commands/merge-timing.d.ts.map +1 -1
- package/dist/commands/merge-timing.js +11 -106
- package/dist/commands/merge-timing.js.map +1 -1
- package/dist/core/estimate.d.ts +9 -9
- package/dist/core/estimate.d.ts.map +1 -1
- package/dist/core/estimate.js +4 -4
- package/dist/core/estimate.js.map +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +0 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/test-discovery.d.ts.map +1 -1
- package/dist/core/test-discovery.js +7 -4
- package/dist/core/test-discovery.js.map +1 -1
- package/dist/core/timing-store.d.ts +16 -36
- package/dist/core/timing-store.d.ts.map +1 -1
- package/dist/core/timing-store.js +21 -140
- package/dist/core/timing-store.js.map +1 -1
- package/dist/core/types.d.ts +7 -67
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +1 -32
- package/dist/core/types.js.map +1 -1
- package/dist/reporter.d.ts +40 -0
- package/dist/reporter.d.ts.map +1 -0
- package/dist/reporter.js +73 -0
- package/dist/reporter.js.map +1 -0
- package/package.json +22 -1
- package/dist/core/grep-pattern.d.ts +0 -71
- package/dist/core/grep-pattern.d.ts.map +0 -1
- package/dist/core/grep-pattern.js +0 -117
- package/dist/core/grep-pattern.js.map +0 -1
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import * as path from 'node:path';
|
|
3
3
|
import { Command, Flags } from '@oclif/core';
|
|
4
|
-
import { DEFAULT_EMA_ALPHA, DEFAULT_PRUNE_DAYS,
|
|
4
|
+
import { DEFAULT_EMA_ALPHA, DEFAULT_PRUNE_DAYS, loadTimingData, mergeTimingData, pruneTimingData, saveTimingData, } from '../core/index.js';
|
|
5
5
|
export default class MergeTiming extends Command {
|
|
6
6
|
static description = 'Merge timing data from multiple shards using Exponential Moving Average';
|
|
7
7
|
static examples = [
|
|
8
8
|
'<%= config.bin %> merge-timing --existing ./timing.json --new ./shard-1.json ./shard-2.json --output ./timing.json',
|
|
9
9
|
'<%= config.bin %> merge-timing --new ./shard-*.json --output ./timing.json --alpha 0.3 --prune-days 30',
|
|
10
|
-
'<%= config.bin %> merge-timing --new ./shard-*.json --output ./timing.json --level test',
|
|
11
10
|
];
|
|
12
11
|
static flags = {
|
|
13
12
|
existing: Flags.string({
|
|
@@ -34,14 +33,8 @@ export default class MergeTiming extends Command {
|
|
|
34
33
|
description: 'Remove entries older than N days',
|
|
35
34
|
default: DEFAULT_PRUNE_DAYS,
|
|
36
35
|
}),
|
|
37
|
-
'current-
|
|
38
|
-
description: 'Path to file listing current test
|
|
39
|
-
}),
|
|
40
|
-
level: Flags.string({
|
|
41
|
-
char: 'l',
|
|
42
|
-
description: 'Data level: file or test',
|
|
43
|
-
default: 'test',
|
|
44
|
-
options: ['file', 'test'],
|
|
36
|
+
'current-tests': Flags.string({
|
|
37
|
+
description: 'Path to file listing current test IDs (for pruning deleted tests)',
|
|
45
38
|
}),
|
|
46
39
|
verbose: Flags.boolean({
|
|
47
40
|
char: 'v',
|
|
@@ -55,24 +48,10 @@ export default class MergeTiming extends Command {
|
|
|
55
48
|
if (Number.isNaN(alpha) || alpha < 0 || alpha > 1) {
|
|
56
49
|
this.error('Alpha must be a number between 0 and 1');
|
|
57
50
|
}
|
|
58
|
-
if (flags.level === 'test') {
|
|
59
|
-
await this.runTestLevel(flags, alpha);
|
|
60
|
-
}
|
|
61
|
-
else {
|
|
62
|
-
await this.runFileLevel(flags, alpha);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
async runTestLevel(flags, alpha) {
|
|
66
51
|
// Load existing timing data
|
|
67
52
|
let existingData = null;
|
|
68
53
|
if (flags.existing) {
|
|
69
|
-
|
|
70
|
-
if (isTimingDataV2(loaded)) {
|
|
71
|
-
existingData = loaded;
|
|
72
|
-
}
|
|
73
|
-
else if (flags.verbose) {
|
|
74
|
-
this.warn('Existing timing data is v1 (file-level), starting fresh for test-level');
|
|
75
|
-
}
|
|
54
|
+
existingData = loadTimingData(flags.existing);
|
|
76
55
|
}
|
|
77
56
|
if (flags.verbose) {
|
|
78
57
|
const testCount = existingData
|
|
@@ -86,7 +65,6 @@ export default class MergeTiming extends Command {
|
|
|
86
65
|
try {
|
|
87
66
|
const content = fs.readFileSync(path.resolve(artifactPath), 'utf-8');
|
|
88
67
|
const artifact = JSON.parse(content);
|
|
89
|
-
// Check if it has tests (v2) or files (v1)
|
|
90
68
|
if (artifact.tests) {
|
|
91
69
|
newArtifacts.push(artifact);
|
|
92
70
|
if (flags.verbose) {
|
|
@@ -94,7 +72,7 @@ export default class MergeTiming extends Command {
|
|
|
94
72
|
}
|
|
95
73
|
}
|
|
96
74
|
else if (flags.verbose) {
|
|
97
|
-
this.warn(`Artifact ${artifactPath}
|
|
75
|
+
this.warn(`Artifact ${artifactPath} has no tests, skipping`);
|
|
98
76
|
}
|
|
99
77
|
}
|
|
100
78
|
catch {
|
|
@@ -102,28 +80,28 @@ export default class MergeTiming extends Command {
|
|
|
102
80
|
}
|
|
103
81
|
}
|
|
104
82
|
if (newArtifacts.length === 0) {
|
|
105
|
-
this.warn('No valid
|
|
83
|
+
this.warn('No valid timing artifacts found');
|
|
106
84
|
return;
|
|
107
85
|
}
|
|
108
86
|
// Merge timing data using EMA
|
|
109
|
-
let mergedData =
|
|
87
|
+
let mergedData = mergeTimingData(existingData, newArtifacts, alpha);
|
|
110
88
|
if (flags.verbose) {
|
|
111
89
|
this.log(`Merged timing data now has ${Object.keys(mergedData.tests).length} tests`);
|
|
112
90
|
}
|
|
113
91
|
// Load current test IDs for pruning if provided
|
|
114
92
|
let currentTestIds;
|
|
115
|
-
if (flags['current-
|
|
93
|
+
if (flags['current-tests']) {
|
|
116
94
|
try {
|
|
117
|
-
const content = fs.readFileSync(flags['current-
|
|
95
|
+
const content = fs.readFileSync(flags['current-tests'], 'utf-8');
|
|
118
96
|
currentTestIds = content.split('\n').filter((line) => line.trim());
|
|
119
97
|
}
|
|
120
98
|
catch {
|
|
121
|
-
this.warn(`Failed to load current test IDs list: ${flags['current-
|
|
99
|
+
this.warn(`Failed to load current test IDs list: ${flags['current-tests']}`);
|
|
122
100
|
}
|
|
123
101
|
}
|
|
124
102
|
// Prune old entries
|
|
125
103
|
const beforePrune = Object.keys(mergedData.tests).length;
|
|
126
|
-
mergedData =
|
|
104
|
+
mergedData = pruneTimingData(mergedData, flags['prune-days'], currentTestIds);
|
|
127
105
|
const afterPrune = Object.keys(mergedData.tests).length;
|
|
128
106
|
if (flags.verbose && beforePrune !== afterPrune) {
|
|
129
107
|
this.log(`Pruned ${beforePrune - afterPrune} old entries`);
|
|
@@ -140,78 +118,5 @@ export default class MergeTiming extends Command {
|
|
|
140
118
|
version: mergedData.version,
|
|
141
119
|
}));
|
|
142
120
|
}
|
|
143
|
-
async runFileLevel(flags, alpha) {
|
|
144
|
-
// Load existing timing data
|
|
145
|
-
const existingData = flags.existing
|
|
146
|
-
? loadTimingData(flags.existing)
|
|
147
|
-
: { version: 1, updatedAt: new Date().toISOString(), files: {} };
|
|
148
|
-
if (flags.verbose) {
|
|
149
|
-
const fileCount = 'files' in existingData ? Object.keys(existingData.files).length : 0;
|
|
150
|
-
this.log(`Loaded existing timing data with ${fileCount} files`);
|
|
151
|
-
}
|
|
152
|
-
// Load new timing artifacts
|
|
153
|
-
const newArtifacts = [];
|
|
154
|
-
for (const artifactPath of flags.new) {
|
|
155
|
-
try {
|
|
156
|
-
const content = fs.readFileSync(path.resolve(artifactPath), 'utf-8');
|
|
157
|
-
const artifact = JSON.parse(content);
|
|
158
|
-
// Check if it has files (v1)
|
|
159
|
-
if (artifact.files) {
|
|
160
|
-
newArtifacts.push(artifact);
|
|
161
|
-
if (flags.verbose) {
|
|
162
|
-
this.log(`Loaded timing artifact from shard ${artifact.shard} with ${Object.keys(artifact.files).length} files`);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else if (flags.verbose) {
|
|
166
|
-
this.warn(`Artifact ${artifactPath} is test-level, skipping for file-level merge`);
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
catch {
|
|
170
|
-
this.warn(`Failed to load timing artifact: ${artifactPath}`);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
if (newArtifacts.length === 0) {
|
|
174
|
-
this.warn('No valid file-level timing artifacts found');
|
|
175
|
-
return;
|
|
176
|
-
}
|
|
177
|
-
// Merge timing data using EMA
|
|
178
|
-
let mergedData = mergeTimingData(existingData, newArtifacts, alpha);
|
|
179
|
-
if (flags.verbose) {
|
|
180
|
-
this.log(`Merged timing data now has ${Object.keys(mergedData.files).length} files`);
|
|
181
|
-
}
|
|
182
|
-
// Load current files for pruning if provided
|
|
183
|
-
let currentFiles;
|
|
184
|
-
if (flags['current-files']) {
|
|
185
|
-
try {
|
|
186
|
-
const content = fs.readFileSync(flags['current-files'], 'utf-8');
|
|
187
|
-
currentFiles = content.split('\n').filter((line) => line.trim());
|
|
188
|
-
}
|
|
189
|
-
catch {
|
|
190
|
-
this.warn(`Failed to load current files list: ${flags['current-files']}`);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
// Prune old entries
|
|
194
|
-
const beforePrune = Object.keys(mergedData.files).length;
|
|
195
|
-
const prunedData = pruneTimingData(mergedData, flags['prune-days'], currentFiles);
|
|
196
|
-
// pruneTimingData can return v1 or v2, but for file-level we expect v1
|
|
197
|
-
if ('files' in prunedData) {
|
|
198
|
-
mergedData = prunedData;
|
|
199
|
-
}
|
|
200
|
-
const afterPrune = Object.keys(mergedData.files).length;
|
|
201
|
-
if (flags.verbose && beforePrune !== afterPrune) {
|
|
202
|
-
this.log(`Pruned ${beforePrune - afterPrune} old entries`);
|
|
203
|
-
}
|
|
204
|
-
// Save merged data
|
|
205
|
-
saveTimingData(flags.output, mergedData);
|
|
206
|
-
if (flags.verbose) {
|
|
207
|
-
this.log(`Saved merged timing data to ${flags.output}`);
|
|
208
|
-
}
|
|
209
|
-
// Output summary
|
|
210
|
-
this.log(JSON.stringify({
|
|
211
|
-
files: Object.keys(mergedData.files).length,
|
|
212
|
-
updatedAt: mergedData.updatedAt,
|
|
213
|
-
version: mergedData.version,
|
|
214
|
-
}));
|
|
215
|
-
}
|
|
216
121
|
}
|
|
217
122
|
//# sourceMappingURL=merge-timing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"merge-timing.js","sourceRoot":"","sources":["../../src/commands/merge-timing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"merge-timing.js","sourceRoot":"","sources":["../../src/commands/merge-timing.ts"],"names":[],"mappings":"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"}
|
package/dist/core/estimate.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DiscoveredTest,
|
|
1
|
+
import type { DiscoveredTest, TimingData } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Default milliseconds per line for duration estimation
|
|
4
4
|
*/
|
|
@@ -35,20 +35,20 @@ export declare function estimateDurations(testDir: string, files: string[], msPe
|
|
|
35
35
|
* 3. Default constant: Use DEFAULT_TEST_DURATION (30 seconds)
|
|
36
36
|
*
|
|
37
37
|
* @param testId - Test ID to estimate
|
|
38
|
-
* @param timingData - Existing timing data
|
|
38
|
+
* @param timingData - Existing timing data
|
|
39
39
|
* @returns Estimated duration in milliseconds
|
|
40
40
|
*/
|
|
41
|
-
export declare function estimateTestDuration(testId: string, timingData:
|
|
41
|
+
export declare function estimateTestDuration(testId: string, timingData: TimingData | null): number;
|
|
42
42
|
/**
|
|
43
43
|
* Get durations for a list of discovered tests
|
|
44
44
|
*
|
|
45
45
|
* Uses timing data when available, falls back to estimation
|
|
46
46
|
*
|
|
47
47
|
* @param tests - List of discovered tests
|
|
48
|
-
* @param timingData - Existing timing data
|
|
48
|
+
* @param timingData - Existing timing data
|
|
49
49
|
* @returns Array of tests with their durations and estimation flag
|
|
50
50
|
*/
|
|
51
|
-
export declare function getTestDurations(tests: DiscoveredTest[], timingData:
|
|
51
|
+
export declare function getTestDurations(tests: DiscoveredTest[], timingData: TimingData | null): Array<{
|
|
52
52
|
testId: string;
|
|
53
53
|
file: string;
|
|
54
54
|
duration: number;
|
|
@@ -57,16 +57,16 @@ export declare function getTestDurations(tests: DiscoveredTest[], timingData: Ti
|
|
|
57
57
|
/**
|
|
58
58
|
* Calculate average test duration from timing data
|
|
59
59
|
*
|
|
60
|
-
* @param timingData - Timing data
|
|
60
|
+
* @param timingData - Timing data
|
|
61
61
|
* @returns Average duration in milliseconds, or DEFAULT_TEST_DURATION if no data
|
|
62
62
|
*/
|
|
63
|
-
export declare function calculateAverageTestDuration(timingData:
|
|
63
|
+
export declare function calculateAverageTestDuration(timingData: TimingData | null): number;
|
|
64
64
|
/**
|
|
65
65
|
* Calculate average test duration for tests in a specific file
|
|
66
66
|
*
|
|
67
67
|
* @param file - File name
|
|
68
|
-
* @param timingData - Timing data
|
|
68
|
+
* @param timingData - Timing data
|
|
69
69
|
* @returns Average duration in milliseconds, or null if no tests found for file
|
|
70
70
|
*/
|
|
71
|
-
export declare function calculateFileAverageTestDuration(file: string, timingData:
|
|
71
|
+
export declare function calculateFileAverageTestDuration(file: string, timingData: TimingData | null): number | null;
|
|
72
72
|
//# sourceMappingURL=estimate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../src/core/estimate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"estimate.d.ts","sourceRoot":"","sources":["../../src/core/estimate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7D;;GAEG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAE3C;;GAEG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQnD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,MAA4B,GACtC,MAAM,CAGR;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EAAE,EACf,SAAS,GAAE,MAA4B,GACtC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,MAAM,CA0BR;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EAAE,EACvB,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,KAAK,CAAC;IACP,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC,CAoBD;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,MAAM,CAQR;AAED;;;;;;GAMG;AACH,wBAAgB,gCAAgC,CAC9C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,GAAG,IAAI,GAC5B,MAAM,GAAG,IAAI,CAef"}
|
package/dist/core/estimate.js
CHANGED
|
@@ -56,7 +56,7 @@ export function estimateDurations(testDir, files, msPerLine = DEFAULT_MS_PER_LIN
|
|
|
56
56
|
* 3. Default constant: Use DEFAULT_TEST_DURATION (30 seconds)
|
|
57
57
|
*
|
|
58
58
|
* @param testId - Test ID to estimate
|
|
59
|
-
* @param timingData - Existing timing data
|
|
59
|
+
* @param timingData - Existing timing data
|
|
60
60
|
* @returns Estimated duration in milliseconds
|
|
61
61
|
*/
|
|
62
62
|
export function estimateTestDuration(testId, timingData) {
|
|
@@ -85,7 +85,7 @@ export function estimateTestDuration(testId, timingData) {
|
|
|
85
85
|
* Uses timing data when available, falls back to estimation
|
|
86
86
|
*
|
|
87
87
|
* @param tests - List of discovered tests
|
|
88
|
-
* @param timingData - Existing timing data
|
|
88
|
+
* @param timingData - Existing timing data
|
|
89
89
|
* @returns Array of tests with their durations and estimation flag
|
|
90
90
|
*/
|
|
91
91
|
export function getTestDurations(tests, timingData) {
|
|
@@ -110,7 +110,7 @@ export function getTestDurations(tests, timingData) {
|
|
|
110
110
|
/**
|
|
111
111
|
* Calculate average test duration from timing data
|
|
112
112
|
*
|
|
113
|
-
* @param timingData - Timing data
|
|
113
|
+
* @param timingData - Timing data
|
|
114
114
|
* @returns Average duration in milliseconds, or DEFAULT_TEST_DURATION if no data
|
|
115
115
|
*/
|
|
116
116
|
export function calculateAverageTestDuration(timingData) {
|
|
@@ -125,7 +125,7 @@ export function calculateAverageTestDuration(timingData) {
|
|
|
125
125
|
* Calculate average test duration for tests in a specific file
|
|
126
126
|
*
|
|
127
127
|
* @param file - File name
|
|
128
|
-
* @param timingData - Timing data
|
|
128
|
+
* @param timingData - Timing data
|
|
129
129
|
* @returns Average duration in milliseconds, or null if no tests found for file
|
|
130
130
|
*/
|
|
131
131
|
export function calculateFileAverageTestDuration(file, timingData) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/core/estimate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,QAAgB;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,qDAAqD;QACrD,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,YAAoB,mBAAmB;IAEvC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnC,OAAO,KAAK,GAAG,SAAS,CAAC;AAC3B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAAe,EACf,KAAe,EACf,YAAoB,mBAAmB;IAEvC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC1C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,
|
|
1
|
+
{"version":3,"file":"estimate.js","sourceRoot":"","sources":["../../src/core/estimate.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
|
package/dist/core/index.js
CHANGED
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-discovery.d.ts","sourceRoot":"","sources":["../../src/core/test-discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,YAAY,CAAC;AAGpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAGvE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc,EAAE,CAyBlB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,GACjB,cAAc,EAAE,CAsBlB;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAuB,GACnC,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"test-discovery.d.ts","sourceRoot":"","sources":["../../src/core/test-discovery.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,YAAY,CAAC;AAGpB;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAGvE;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc,EAAE,CAyBlB;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,GACjB,cAAc,EAAE,CAsBlB;AAgDD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAuB,GACnC,cAAc,EAAE,CAgBlB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,cAAc,EAAE,CAkElB;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,cAAc,EAAE,GACtB,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAU/B"}
|
|
@@ -102,10 +102,10 @@ function extractTestsFromSuite(suite, parentTitles, tests) {
|
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
104
|
* Get relative file path from absolute path
|
|
105
|
+
* Uses path relative to CWD for consistency with reporter
|
|
105
106
|
*/
|
|
106
107
|
function getRelativeFilePath(filePath) {
|
|
107
|
-
|
|
108
|
-
return path.basename(filePath);
|
|
108
|
+
return path.relative(process.cwd(), filePath).replace(/\\/g, '/');
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
111
|
* Discover tests by scanning test files directly (fallback method)
|
|
@@ -122,8 +122,11 @@ export function discoverTestsFromFiles(testDir, globPattern = '**/*.spec.ts') {
|
|
|
122
122
|
const files = glob.sync(globPattern, { cwd: testDir, absolute: true });
|
|
123
123
|
for (const filePath of files) {
|
|
124
124
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
125
|
-
|
|
126
|
-
const
|
|
125
|
+
// Use relative path from CWD for consistency with reporter
|
|
126
|
+
const relativeFile = path
|
|
127
|
+
.relative(process.cwd(), filePath)
|
|
128
|
+
.replace(/\\/g, '/');
|
|
129
|
+
const fileTests = parseTestsFromSource(content, relativeFile);
|
|
127
130
|
tests.push(...fileTests);
|
|
128
131
|
}
|
|
129
132
|
return tests;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-discovery.js","sourceRoot":"","sources":["../../src/core/test-discovery.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"test-discovery.js","sourceRoot":"","sources":["../../src/core/test-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAAgB;IACnD,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,yBAAyB,CAAC,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,OAAgB,EAChB,SAAkB;IAElB,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,MAAM,GAAG,GACP,8CAA8C,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAErE,mFAAmF;IACnF,MAAM,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC;IAEjC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE;YAC3B,GAAG;YACH,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,oCAAoC;YACjE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;SAChC,CAAC,CAAC;QAEH,OAAO,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,MAAM,SAAS,GAAG,KAA6C,CAAC;QAChE,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,yBAAyB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACrD,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CACvC,UAAkB;IAElB,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAyB,CAAC;QAE5D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAClD,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAyB,CAAC;YAC9D,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChC,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,KAA0B,EAC1B,YAAsB,EACtB,KAAuB;IAEvB,MAAM,aAAa,GACjB,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE;QAC/B,CAAC,CAAC,CAAC,GAAG,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC;QAChC,CAAC,CAAC,YAAY,CAAC;IAEnB,+BAA+B;IAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,CAAC,GAAG,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;YAE1D,KAAK,CAAC,IAAI,CAAC;gBACT,IAAI;gBACJ,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,SAAS;gBACT,MAAM,EAAE,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,WAAW,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACvC,qBAAqB,CAAC,WAAW,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAAe,EACf,cAAsB,cAAc;IAEpC,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvE,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnD,2DAA2D;QAC3D,MAAM,YAAY,GAAG,IAAI;aACtB,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;aACjC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACvB,MAAM,SAAS,GAAG,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC9D,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAc,EACd,QAAgB;IAEhB,MAAM,KAAK,GAAqB,EAAE,CAAC;IAEnC,0CAA0C;IAC1C,yEAAyE;IACzE,MAAM,aAAa,GAAG,iDAAiD,CAAC;IACxE,MAAM,SAAS,GAAG,yCAAyC,CAAC;IAE5D,gDAAgD;IAChD,MAAM,SAAS,GAAoD,EAAE,CAAC;IAEtE,8BAA8B;IAC9B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,2DAA2D;QAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,GAAG,GAAG,KAAK,CAAC;QAChB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3C,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBACtB,UAAU,EAAE,CAAC;gBACb,SAAS,GAAG,IAAI,CAAC;YACnB,CAAC;iBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;gBAC7B,UAAU,EAAE,CAAC;gBACb,IAAI,SAAS,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBAClC,GAAG,GAAG,CAAC,CAAC;oBACR,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,iBAAiB;IACjB,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAEjC,+CAA+C;QAC/C,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAC/C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAE1B,gDAAgD;QAChD,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;QAC7D,uDAAuD;QACvD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;QAErC,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,SAAS;YAChB,SAAS;YACT,MAAM,EAAE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC;YACxC,IAAI;YACJ,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,KAAuB;IAEvB,MAAM,OAAO,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ShardTimingArtifact,
|
|
1
|
+
import type { ShardTimingArtifact, TimingData } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Default EMA smoothing factor (alpha)
|
|
4
4
|
* Higher values give more weight to recent measurements
|
|
@@ -11,10 +11,8 @@ export declare const DEFAULT_PRUNE_DAYS = 30;
|
|
|
11
11
|
/**
|
|
12
12
|
* Load timing data from a JSON file
|
|
13
13
|
*
|
|
14
|
-
* Supports both v1 (file-level) and v2 (test-level) formats.
|
|
15
|
-
*
|
|
16
14
|
* @param filePath - Path to the timing data JSON file
|
|
17
|
-
* @returns Timing data, or empty data if file doesn't exist
|
|
15
|
+
* @returns Timing data, or empty data if file doesn't exist or is invalid
|
|
18
16
|
*/
|
|
19
17
|
export declare function loadTimingData(filePath: string): TimingData;
|
|
20
18
|
/**
|
|
@@ -32,59 +30,41 @@ export declare function saveTimingData(filePath: string, data: TimingData): void
|
|
|
32
30
|
*/
|
|
33
31
|
export declare function calculateEMA(oldDuration: number, newDuration: number, alpha?: number): number;
|
|
34
32
|
/**
|
|
35
|
-
* Merge new timing measurements into existing timing data using EMA
|
|
36
|
-
*
|
|
37
|
-
* @param existing - Existing timing data (v1)
|
|
38
|
-
* @param newMeasurements - New measurements from shard artifacts
|
|
39
|
-
* @param alpha - EMA smoothing factor
|
|
40
|
-
* @returns Updated timing data
|
|
41
|
-
*/
|
|
42
|
-
export declare function mergeTimingData(existing: TimingData, newMeasurements: ShardTimingArtifact[], alpha?: number): TimingDataV1;
|
|
43
|
-
/**
|
|
44
|
-
* Merge new timing measurements into existing timing data using EMA (v2 - test-level)
|
|
33
|
+
* Merge new timing measurements into existing timing data using EMA
|
|
45
34
|
*
|
|
46
|
-
* @param existing - Existing timing data (
|
|
35
|
+
* @param existing - Existing timing data (or null for fresh start)
|
|
47
36
|
* @param newMeasurements - New measurements from shard artifacts
|
|
48
37
|
* @param alpha - EMA smoothing factor
|
|
49
38
|
* @returns Updated timing data
|
|
50
39
|
*/
|
|
51
|
-
export declare function
|
|
40
|
+
export declare function mergeTimingData(existing: TimingData | null, newMeasurements: ShardTimingArtifact[], alpha?: number): TimingData;
|
|
52
41
|
/**
|
|
53
|
-
* Prune old entries from timing data
|
|
42
|
+
* Prune old entries from timing data
|
|
54
43
|
*
|
|
55
44
|
* Removes entries that:
|
|
56
45
|
* 1. Haven't been run in more than `days` days
|
|
57
|
-
* 2. No longer exist in the current
|
|
58
|
-
*
|
|
59
|
-
* @param data - Timing data to prune
|
|
60
|
-
* @param days - Number of days after which to remove entries
|
|
61
|
-
* @param currentFiles - Optional list of current test files (to remove deleted tests)
|
|
62
|
-
* @returns Pruned timing data
|
|
63
|
-
*/
|
|
64
|
-
export declare function pruneTimingData(data: TimingData, days?: number, currentFiles?: string[]): TimingData;
|
|
65
|
-
/**
|
|
66
|
-
* Prune old entries from timing data (v2 - test-level)
|
|
46
|
+
* 2. No longer exist in the current tests (if provided)
|
|
67
47
|
*
|
|
68
48
|
* @param data - Timing data to prune
|
|
69
49
|
* @param days - Number of days after which to remove entries
|
|
70
50
|
* @param currentTestIds - Optional list of current test IDs (to remove deleted tests)
|
|
71
51
|
* @returns Pruned timing data
|
|
72
52
|
*/
|
|
73
|
-
export declare function
|
|
53
|
+
export declare function pruneTimingData(data: TimingData, days?: number, currentTestIds?: string[]): TimingData;
|
|
74
54
|
/**
|
|
75
|
-
* Get duration for a
|
|
55
|
+
* Get duration for a test from timing data
|
|
76
56
|
*
|
|
77
57
|
* @param data - Timing data
|
|
78
|
-
* @param
|
|
58
|
+
* @param testId - Test ID
|
|
79
59
|
* @returns Duration in ms, or undefined if not found
|
|
80
60
|
*/
|
|
81
|
-
export declare function
|
|
61
|
+
export declare function getTestDuration(data: TimingData, testId: string): number | undefined;
|
|
82
62
|
/**
|
|
83
|
-
* Get duration for a
|
|
63
|
+
* Get total duration for a file by aggregating all tests in that file
|
|
84
64
|
*
|
|
85
|
-
* @param data - Timing data
|
|
86
|
-
* @param
|
|
87
|
-
* @returns
|
|
65
|
+
* @param data - Timing data
|
|
66
|
+
* @param file - File path
|
|
67
|
+
* @returns Total duration in ms, or undefined if no tests found
|
|
88
68
|
*/
|
|
89
|
-
export declare function
|
|
69
|
+
export declare function getFileDuration(data: TimingData, file: string): number | undefined;
|
|
90
70
|
//# sourceMappingURL=timing-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing-store.d.ts","sourceRoot":"","sources":["../../src/core/timing-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"timing-store.d.ts","sourceRoot":"","sources":["../../src/core/timing-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EAEnB,UAAU,EACX,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC;;GAEG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAsB3D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAGvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,KAAK,GAAE,MAA0B,GAChC,MAAM,CAER;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,UAAU,GAAG,IAAI,EAC3B,eAAe,EAAE,mBAAmB,EAAE,EACtC,KAAK,GAAE,MAA0B,GAChC,UAAU,CAmCZ;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,GAAE,MAA2B,EACjC,cAAc,CAAC,EAAE,MAAM,EAAE,GACxB,UAAU,CA4BZ;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,GACb,MAAM,GAAG,SAAS,CAEpB;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,IAAI,EAAE,MAAM,GACX,MAAM,GAAG,SAAS,CASpB"}
|