@nsxbet/playwright-orchestrator 0.4.1 → 0.5.0
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 +22 -5
- 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 +20 -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 +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":"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"}
|
|
@@ -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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
|
-
import { createEmptyTimingData,
|
|
2
|
+
import { createEmptyTimingData, TIMING_DATA_VERSION } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Default EMA smoothing factor (alpha)
|
|
5
5
|
* Higher values give more weight to recent measurements
|
|
@@ -12,25 +12,18 @@ export const DEFAULT_PRUNE_DAYS = 30;
|
|
|
12
12
|
/**
|
|
13
13
|
* Load timing data from a JSON file
|
|
14
14
|
*
|
|
15
|
-
* Supports both v1 (file-level) and v2 (test-level) formats.
|
|
16
|
-
*
|
|
17
15
|
* @param filePath - Path to the timing data JSON file
|
|
18
|
-
* @returns Timing data, or empty data if file doesn't exist
|
|
16
|
+
* @returns Timing data, or empty data if file doesn't exist or is invalid
|
|
19
17
|
*/
|
|
20
18
|
export function loadTimingData(filePath) {
|
|
21
19
|
try {
|
|
22
20
|
const content = fs.readFileSync(filePath, 'utf-8');
|
|
23
21
|
const data = JSON.parse(content);
|
|
24
|
-
//
|
|
25
|
-
if (data.version === TIMING_DATA_VERSION_V1) {
|
|
26
|
-
// Return as-is for backwards compatibility
|
|
27
|
-
return data;
|
|
28
|
-
}
|
|
29
|
-
// Handle v2 format
|
|
22
|
+
// Only accept current version
|
|
30
23
|
if (data.version === TIMING_DATA_VERSION) {
|
|
31
24
|
return data;
|
|
32
25
|
}
|
|
33
|
-
// Unknown version - return empty
|
|
26
|
+
// Unknown or old version - return empty data
|
|
34
27
|
console.warn(`Timing data version mismatch: expected ${TIMING_DATA_VERSION}, got ${data.version}. Using empty data.`);
|
|
35
28
|
return createEmptyTimingData();
|
|
36
29
|
}
|
|
@@ -59,56 +52,14 @@ export function calculateEMA(oldDuration, newDuration, alpha = DEFAULT_EMA_ALPHA
|
|
|
59
52
|
return Math.round(alpha * newDuration + (1 - alpha) * oldDuration);
|
|
60
53
|
}
|
|
61
54
|
/**
|
|
62
|
-
* Merge new timing measurements into existing timing data using EMA
|
|
55
|
+
* Merge new timing measurements into existing timing data using EMA
|
|
63
56
|
*
|
|
64
|
-
* @param existing - Existing timing data (
|
|
57
|
+
* @param existing - Existing timing data (or null for fresh start)
|
|
65
58
|
* @param newMeasurements - New measurements from shard artifacts
|
|
66
59
|
* @param alpha - EMA smoothing factor
|
|
67
60
|
* @returns Updated timing data
|
|
68
61
|
*/
|
|
69
62
|
export function mergeTimingData(existing, newMeasurements, alpha = DEFAULT_EMA_ALPHA) {
|
|
70
|
-
const now = new Date().toISOString();
|
|
71
|
-
// Convert v2 to v1 if needed (lossy - just take file names)
|
|
72
|
-
const existingFiles = isTimingDataV1(existing)
|
|
73
|
-
? existing.files
|
|
74
|
-
: aggregateTestsToFiles(existing);
|
|
75
|
-
const merged = {
|
|
76
|
-
version: TIMING_DATA_VERSION_V1,
|
|
77
|
-
updatedAt: now,
|
|
78
|
-
files: { ...existingFiles },
|
|
79
|
-
};
|
|
80
|
-
for (const artifact of newMeasurements) {
|
|
81
|
-
for (const [file, duration] of Object.entries(artifact.files)) {
|
|
82
|
-
const existingData = merged.files[file];
|
|
83
|
-
if (existingData) {
|
|
84
|
-
// Apply EMA to existing data
|
|
85
|
-
merged.files[file] = {
|
|
86
|
-
duration: calculateEMA(existingData.duration, duration, alpha),
|
|
87
|
-
runs: existingData.runs + 1,
|
|
88
|
-
lastRun: now,
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
else {
|
|
92
|
-
// First measurement for this file
|
|
93
|
-
merged.files[file] = {
|
|
94
|
-
duration,
|
|
95
|
-
runs: 1,
|
|
96
|
-
lastRun: now,
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return merged;
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Merge new timing measurements into existing timing data using EMA (v2 - test-level)
|
|
105
|
-
*
|
|
106
|
-
* @param existing - Existing timing data (v2)
|
|
107
|
-
* @param newMeasurements - New measurements from shard artifacts
|
|
108
|
-
* @param alpha - EMA smoothing factor
|
|
109
|
-
* @returns Updated timing data
|
|
110
|
-
*/
|
|
111
|
-
export function mergeTestTimingData(existing, newMeasurements, alpha = DEFAULT_EMA_ALPHA) {
|
|
112
63
|
const now = new Date().toISOString();
|
|
113
64
|
const merged = {
|
|
114
65
|
version: TIMING_DATA_VERSION,
|
|
@@ -149,84 +100,18 @@ function extractFileFromTestId(testId) {
|
|
|
149
100
|
return parts[0] ?? '';
|
|
150
101
|
}
|
|
151
102
|
/**
|
|
152
|
-
*
|
|
153
|
-
*/
|
|
154
|
-
function aggregateTestsToFiles(data) {
|
|
155
|
-
const fileMap = new Map();
|
|
156
|
-
for (const testData of Object.values(data.tests)) {
|
|
157
|
-
const existing = fileMap.get(testData.file);
|
|
158
|
-
if (existing) {
|
|
159
|
-
existing.totalDuration += testData.duration;
|
|
160
|
-
existing.count += 1;
|
|
161
|
-
if (testData.lastRun > existing.lastRun) {
|
|
162
|
-
existing.lastRun = testData.lastRun;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
fileMap.set(testData.file, {
|
|
167
|
-
totalDuration: testData.duration,
|
|
168
|
-
count: 1,
|
|
169
|
-
lastRun: testData.lastRun,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
const result = {};
|
|
174
|
-
for (const [file, stats] of fileMap) {
|
|
175
|
-
result[file] = {
|
|
176
|
-
duration: stats.totalDuration,
|
|
177
|
-
runs: stats.count,
|
|
178
|
-
lastRun: stats.lastRun,
|
|
179
|
-
};
|
|
180
|
-
}
|
|
181
|
-
return result;
|
|
182
|
-
}
|
|
183
|
-
/**
|
|
184
|
-
* Prune old entries from timing data (v1 - file-level)
|
|
103
|
+
* Prune old entries from timing data
|
|
185
104
|
*
|
|
186
105
|
* Removes entries that:
|
|
187
106
|
* 1. Haven't been run in more than `days` days
|
|
188
|
-
* 2. No longer exist in the current
|
|
189
|
-
*
|
|
190
|
-
* @param data - Timing data to prune
|
|
191
|
-
* @param days - Number of days after which to remove entries
|
|
192
|
-
* @param currentFiles - Optional list of current test files (to remove deleted tests)
|
|
193
|
-
* @returns Pruned timing data
|
|
194
|
-
*/
|
|
195
|
-
export function pruneTimingData(data, days = DEFAULT_PRUNE_DAYS, currentFiles) {
|
|
196
|
-
if (isTimingDataV2(data)) {
|
|
197
|
-
return pruneTestTimingData(data, days, currentFiles);
|
|
198
|
-
}
|
|
199
|
-
const now = new Date();
|
|
200
|
-
const cutoffDate = new Date(now.getTime() - days * 24 * 60 * 60 * 1000);
|
|
201
|
-
const currentFileSet = currentFiles ? new Set(currentFiles) : null;
|
|
202
|
-
const prunedFiles = {};
|
|
203
|
-
for (const [file, timing] of Object.entries(data.files)) {
|
|
204
|
-
const lastRun = new Date(timing.lastRun);
|
|
205
|
-
// Skip if too old
|
|
206
|
-
if (lastRun < cutoffDate) {
|
|
207
|
-
continue;
|
|
208
|
-
}
|
|
209
|
-
// Skip if file no longer exists (when currentFiles is provided)
|
|
210
|
-
if (currentFileSet && !currentFileSet.has(file)) {
|
|
211
|
-
continue;
|
|
212
|
-
}
|
|
213
|
-
prunedFiles[file] = timing;
|
|
214
|
-
}
|
|
215
|
-
return {
|
|
216
|
-
...data,
|
|
217
|
-
updatedAt: new Date().toISOString(),
|
|
218
|
-
files: prunedFiles,
|
|
219
|
-
};
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Prune old entries from timing data (v2 - test-level)
|
|
107
|
+
* 2. No longer exist in the current tests (if provided)
|
|
223
108
|
*
|
|
224
109
|
* @param data - Timing data to prune
|
|
225
110
|
* @param days - Number of days after which to remove entries
|
|
226
111
|
* @param currentTestIds - Optional list of current test IDs (to remove deleted tests)
|
|
227
112
|
* @returns Pruned timing data
|
|
228
113
|
*/
|
|
229
|
-
export function
|
|
114
|
+
export function pruneTimingData(data, days = DEFAULT_PRUNE_DAYS, currentTestIds) {
|
|
230
115
|
const now = new Date();
|
|
231
116
|
const cutoffDate = new Date(now.getTime() - days * 24 * 60 * 60 * 1000);
|
|
232
117
|
const currentTestSet = currentTestIds ? new Set(currentTestIds) : null;
|
|
@@ -250,31 +135,27 @@ export function pruneTestTimingData(data, days = DEFAULT_PRUNE_DAYS, currentTest
|
|
|
250
135
|
};
|
|
251
136
|
}
|
|
252
137
|
/**
|
|
253
|
-
* Get duration for a
|
|
138
|
+
* Get duration for a test from timing data
|
|
254
139
|
*
|
|
255
140
|
* @param data - Timing data
|
|
256
|
-
* @param
|
|
141
|
+
* @param testId - Test ID
|
|
257
142
|
* @returns Duration in ms, or undefined if not found
|
|
258
143
|
*/
|
|
144
|
+
export function getTestDuration(data, testId) {
|
|
145
|
+
return data.tests[testId]?.duration;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Get total duration for a file by aggregating all tests in that file
|
|
149
|
+
*
|
|
150
|
+
* @param data - Timing data
|
|
151
|
+
* @param file - File path
|
|
152
|
+
* @returns Total duration in ms, or undefined if no tests found
|
|
153
|
+
*/
|
|
259
154
|
export function getFileDuration(data, file) {
|
|
260
|
-
if (isTimingDataV1(data)) {
|
|
261
|
-
return data.files[file]?.duration;
|
|
262
|
-
}
|
|
263
|
-
// For v2 data, aggregate tests in this file
|
|
264
155
|
const fileTests = Object.entries(data.tests).filter(([, t]) => t.file === file);
|
|
265
156
|
if (fileTests.length === 0) {
|
|
266
157
|
return undefined;
|
|
267
158
|
}
|
|
268
159
|
return fileTests.reduce((sum, [, t]) => sum + t.duration, 0);
|
|
269
160
|
}
|
|
270
|
-
/**
|
|
271
|
-
* Get duration for a test from timing data (v2)
|
|
272
|
-
*
|
|
273
|
-
* @param data - Timing data (v2)
|
|
274
|
-
* @param testId - Test ID
|
|
275
|
-
* @returns Duration in ms, or undefined if not found
|
|
276
|
-
*/
|
|
277
|
-
export function getTestDuration(data, testId) {
|
|
278
|
-
return data.tests[testId]?.duration;
|
|
279
|
-
}
|
|
280
161
|
//# sourceMappingURL=timing-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timing-store.js","sourceRoot":"","sources":["../../src/core/timing-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"timing-store.js","sourceRoot":"","sources":["../../src/core/timing-store.ts"],"names":[],"mappings":"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"}
|