assuremind 1.2.3 → 1.4.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 +112 -1
- package/dist/cli/index.js +1212 -18497
- package/dist/index.d.mts +65 -1
- package/dist/index.d.ts +65 -1
- package/dist/index.js +56 -1912
- package/dist/index.mjs +56 -1807
- package/docs/STUDIO.md +96 -1
- package/docs/WRITING-STEPS.md +171 -0
- package/package.json +8 -6
- package/templates/docs/WRITING-STEPS.md +171 -0
- package/ui/dist/assets/index-DqkGvedS.js +1024 -0
- package/ui/dist/assets/index-Dry-Q0Et.css +1 -0
- package/ui/dist/favicon.svg +7 -7
- package/ui/dist/index.html +15 -15
- package/dist/cli/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/index.mjs.map +0 -1
- package/ui/dist/assets/index-B2cmnLeA.js +0 -942
- package/ui/dist/assets/index-Bz5b82ao.css +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -14,16 +14,25 @@ declare const HealingConfigSchema: z.ZodObject<{
|
|
|
14
14
|
maxLevel: z.ZodNumber;
|
|
15
15
|
dailyBudget: z.ZodNumber;
|
|
16
16
|
autoPR: z.ZodBoolean;
|
|
17
|
+
/**
|
|
18
|
+
* Opt-in: when a locator INSIDE an assertion fails to resolve (e.g. a wrong
|
|
19
|
+
* frame selector in expect(...).toBeVisible()), re-resolve just the locator
|
|
20
|
+
* while preserving the matcher and asserted content. Off by default — a
|
|
21
|
+
* genuine "element found but state/value wrong" assertion is never healed.
|
|
22
|
+
*/
|
|
23
|
+
healAssertionLocators: z.ZodDefault<z.ZodBoolean>;
|
|
17
24
|
}, "strip", z.ZodTypeAny, {
|
|
18
25
|
enabled: boolean;
|
|
19
26
|
maxLevel: number;
|
|
20
27
|
dailyBudget: number;
|
|
21
28
|
autoPR: boolean;
|
|
29
|
+
healAssertionLocators: boolean;
|
|
22
30
|
}, {
|
|
23
31
|
enabled: boolean;
|
|
24
32
|
maxLevel: number;
|
|
25
33
|
dailyBudget: number;
|
|
26
34
|
autoPR: boolean;
|
|
35
|
+
healAssertionLocators?: boolean | undefined;
|
|
27
36
|
}>;
|
|
28
37
|
declare const ReportingConfigSchema: z.ZodObject<{
|
|
29
38
|
allure: z.ZodBoolean;
|
|
@@ -81,16 +90,25 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
81
90
|
maxLevel: z.ZodNumber;
|
|
82
91
|
dailyBudget: z.ZodNumber;
|
|
83
92
|
autoPR: z.ZodBoolean;
|
|
93
|
+
/**
|
|
94
|
+
* Opt-in: when a locator INSIDE an assertion fails to resolve (e.g. a wrong
|
|
95
|
+
* frame selector in expect(...).toBeVisible()), re-resolve just the locator
|
|
96
|
+
* while preserving the matcher and asserted content. Off by default — a
|
|
97
|
+
* genuine "element found but state/value wrong" assertion is never healed.
|
|
98
|
+
*/
|
|
99
|
+
healAssertionLocators: z.ZodDefault<z.ZodBoolean>;
|
|
84
100
|
}, "strip", z.ZodTypeAny, {
|
|
85
101
|
enabled: boolean;
|
|
86
102
|
maxLevel: number;
|
|
87
103
|
dailyBudget: number;
|
|
88
104
|
autoPR: boolean;
|
|
105
|
+
healAssertionLocators: boolean;
|
|
89
106
|
}, {
|
|
90
107
|
enabled: boolean;
|
|
91
108
|
maxLevel: number;
|
|
92
109
|
dailyBudget: number;
|
|
93
110
|
autoPR: boolean;
|
|
111
|
+
healAssertionLocators?: boolean | undefined;
|
|
94
112
|
}>;
|
|
95
113
|
reporting: z.ZodObject<{
|
|
96
114
|
allure: z.ZodBoolean;
|
|
@@ -259,6 +277,21 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
259
277
|
actionTimeout: number;
|
|
260
278
|
idleTimeout: number;
|
|
261
279
|
}>>;
|
|
280
|
+
/**
|
|
281
|
+
* CI/CD pipeline integration.
|
|
282
|
+
*
|
|
283
|
+
* When `writeToRepo` is enabled, the Studio's CI Config Generator can write the
|
|
284
|
+
* generated workflow file directly into the project (e.g. .github/workflows/
|
|
285
|
+
* assuremind.yml) instead of being copy/download-only. Off by default — the user
|
|
286
|
+
* reviews and commits the file via the Git Control Center.
|
|
287
|
+
*/
|
|
288
|
+
ci: z.ZodDefault<z.ZodObject<{
|
|
289
|
+
writeToRepo: z.ZodBoolean;
|
|
290
|
+
}, "strip", z.ZodTypeAny, {
|
|
291
|
+
writeToRepo: boolean;
|
|
292
|
+
}, {
|
|
293
|
+
writeToRepo: boolean;
|
|
294
|
+
}>>;
|
|
262
295
|
}, "strip", z.ZodTypeAny, {
|
|
263
296
|
baseUrl: string;
|
|
264
297
|
environment: "dev" | "stage" | "test" | "prod";
|
|
@@ -286,6 +319,7 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
286
319
|
maxLevel: number;
|
|
287
320
|
dailyBudget: number;
|
|
288
321
|
autoPR: boolean;
|
|
322
|
+
healAssertionLocators: boolean;
|
|
289
323
|
};
|
|
290
324
|
reporting: {
|
|
291
325
|
allure: boolean;
|
|
@@ -327,6 +361,9 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
327
361
|
actionTimeout: number;
|
|
328
362
|
idleTimeout: number;
|
|
329
363
|
};
|
|
364
|
+
ci: {
|
|
365
|
+
writeToRepo: boolean;
|
|
366
|
+
};
|
|
330
367
|
activeProfile?: string | undefined;
|
|
331
368
|
device?: string | undefined;
|
|
332
369
|
}, {
|
|
@@ -344,6 +381,7 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
344
381
|
maxLevel: number;
|
|
345
382
|
dailyBudget: number;
|
|
346
383
|
autoPR: boolean;
|
|
384
|
+
healAssertionLocators?: boolean | undefined;
|
|
347
385
|
};
|
|
348
386
|
reporting: {
|
|
349
387
|
allure: boolean;
|
|
@@ -399,6 +437,9 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
399
437
|
actionTimeout: number;
|
|
400
438
|
idleTimeout: number;
|
|
401
439
|
} | undefined;
|
|
440
|
+
ci?: {
|
|
441
|
+
writeToRepo: boolean;
|
|
442
|
+
} | undefined;
|
|
402
443
|
}>;
|
|
403
444
|
type HealingConfig = z.infer<typeof HealingConfigSchema>;
|
|
404
445
|
type ReportingConfig = z.infer<typeof ReportingConfigSchema>;
|
|
@@ -947,6 +988,8 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
947
988
|
finishedAt: z.ZodString;
|
|
948
989
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
949
990
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
991
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
992
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
950
993
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
951
994
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
952
995
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1099,6 +1142,7 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
1099
1142
|
browser: string;
|
|
1100
1143
|
startedAt: string;
|
|
1101
1144
|
finishedAt: string;
|
|
1145
|
+
downloadPaths: string[];
|
|
1102
1146
|
pageLoads: {
|
|
1103
1147
|
url: string;
|
|
1104
1148
|
stepIndex: number;
|
|
@@ -1173,6 +1217,7 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
1173
1217
|
device?: string | undefined;
|
|
1174
1218
|
videoPath?: string | undefined;
|
|
1175
1219
|
tracePath?: string | undefined;
|
|
1220
|
+
downloadPaths?: string[] | undefined;
|
|
1176
1221
|
dataRowIndex?: number | undefined;
|
|
1177
1222
|
dataRow?: Record<string, string> | undefined;
|
|
1178
1223
|
pageLoads?: {
|
|
@@ -1325,6 +1370,8 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1325
1370
|
finishedAt: z.ZodString;
|
|
1326
1371
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
1327
1372
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
1373
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
1374
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1328
1375
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
1329
1376
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1330
1377
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1477,6 +1524,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1477
1524
|
browser: string;
|
|
1478
1525
|
startedAt: string;
|
|
1479
1526
|
finishedAt: string;
|
|
1527
|
+
downloadPaths: string[];
|
|
1480
1528
|
pageLoads: {
|
|
1481
1529
|
url: string;
|
|
1482
1530
|
stepIndex: number;
|
|
@@ -1551,6 +1599,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1551
1599
|
device?: string | undefined;
|
|
1552
1600
|
videoPath?: string | undefined;
|
|
1553
1601
|
tracePath?: string | undefined;
|
|
1602
|
+
downloadPaths?: string[] | undefined;
|
|
1554
1603
|
dataRowIndex?: number | undefined;
|
|
1555
1604
|
dataRow?: Record<string, string> | undefined;
|
|
1556
1605
|
pageLoads?: {
|
|
@@ -1632,6 +1681,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1632
1681
|
browser: string;
|
|
1633
1682
|
startedAt: string;
|
|
1634
1683
|
finishedAt: string;
|
|
1684
|
+
downloadPaths: string[];
|
|
1635
1685
|
pageLoads: {
|
|
1636
1686
|
url: string;
|
|
1637
1687
|
stepIndex: number;
|
|
@@ -1716,6 +1766,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1716
1766
|
device?: string | undefined;
|
|
1717
1767
|
videoPath?: string | undefined;
|
|
1718
1768
|
tracePath?: string | undefined;
|
|
1769
|
+
downloadPaths?: string[] | undefined;
|
|
1719
1770
|
dataRowIndex?: number | undefined;
|
|
1720
1771
|
dataRow?: Record<string, string> | undefined;
|
|
1721
1772
|
pageLoads?: {
|
|
@@ -1874,6 +1925,8 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
1874
1925
|
finishedAt: z.ZodString;
|
|
1875
1926
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
1876
1927
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
1928
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
1929
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1877
1930
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
1878
1931
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1879
1932
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -2026,6 +2079,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2026
2079
|
browser: string;
|
|
2027
2080
|
startedAt: string;
|
|
2028
2081
|
finishedAt: string;
|
|
2082
|
+
downloadPaths: string[];
|
|
2029
2083
|
pageLoads: {
|
|
2030
2084
|
url: string;
|
|
2031
2085
|
stepIndex: number;
|
|
@@ -2100,6 +2154,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2100
2154
|
device?: string | undefined;
|
|
2101
2155
|
videoPath?: string | undefined;
|
|
2102
2156
|
tracePath?: string | undefined;
|
|
2157
|
+
downloadPaths?: string[] | undefined;
|
|
2103
2158
|
dataRowIndex?: number | undefined;
|
|
2104
2159
|
dataRow?: Record<string, string> | undefined;
|
|
2105
2160
|
pageLoads?: {
|
|
@@ -2181,6 +2236,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2181
2236
|
browser: string;
|
|
2182
2237
|
startedAt: string;
|
|
2183
2238
|
finishedAt: string;
|
|
2239
|
+
downloadPaths: string[];
|
|
2184
2240
|
pageLoads: {
|
|
2185
2241
|
url: string;
|
|
2186
2242
|
stepIndex: number;
|
|
@@ -2265,6 +2321,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2265
2321
|
device?: string | undefined;
|
|
2266
2322
|
videoPath?: string | undefined;
|
|
2267
2323
|
tracePath?: string | undefined;
|
|
2324
|
+
downloadPaths?: string[] | undefined;
|
|
2268
2325
|
dataRowIndex?: number | undefined;
|
|
2269
2326
|
dataRow?: Record<string, string> | undefined;
|
|
2270
2327
|
pageLoads?: {
|
|
@@ -2361,6 +2418,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2361
2418
|
browser: string;
|
|
2362
2419
|
startedAt: string;
|
|
2363
2420
|
finishedAt: string;
|
|
2421
|
+
downloadPaths: string[];
|
|
2364
2422
|
pageLoads: {
|
|
2365
2423
|
url: string;
|
|
2366
2424
|
stepIndex: number;
|
|
@@ -2458,6 +2516,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2458
2516
|
device?: string | undefined;
|
|
2459
2517
|
videoPath?: string | undefined;
|
|
2460
2518
|
tracePath?: string | undefined;
|
|
2519
|
+
downloadPaths?: string[] | undefined;
|
|
2461
2520
|
dataRowIndex?: number | undefined;
|
|
2462
2521
|
dataRow?: Record<string, string> | undefined;
|
|
2463
2522
|
pageLoads?: {
|
|
@@ -2676,7 +2735,12 @@ interface HealingDecision {
|
|
|
2676
2735
|
strategy?: 'individual' | 'batch';
|
|
2677
2736
|
reason: string;
|
|
2678
2737
|
}
|
|
2679
|
-
|
|
2738
|
+
/**
|
|
2739
|
+
* - 'assertion' → element found but the asserted state/value is wrong (real bug; never healed)
|
|
2740
|
+
* - 'assertion-locator-missing'→ the locator inside an expect() didn't resolve (path broken; healable when opted in)
|
|
2741
|
+
* - 'infra' → broken selector/action on an interaction step (always healable)
|
|
2742
|
+
*/
|
|
2743
|
+
type FailureKind = 'assertion' | 'assertion-locator-missing' | 'infra';
|
|
2680
2744
|
interface StepFailure {
|
|
2681
2745
|
stepId: string;
|
|
2682
2746
|
instruction: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -14,16 +14,25 @@ declare const HealingConfigSchema: z.ZodObject<{
|
|
|
14
14
|
maxLevel: z.ZodNumber;
|
|
15
15
|
dailyBudget: z.ZodNumber;
|
|
16
16
|
autoPR: z.ZodBoolean;
|
|
17
|
+
/**
|
|
18
|
+
* Opt-in: when a locator INSIDE an assertion fails to resolve (e.g. a wrong
|
|
19
|
+
* frame selector in expect(...).toBeVisible()), re-resolve just the locator
|
|
20
|
+
* while preserving the matcher and asserted content. Off by default — a
|
|
21
|
+
* genuine "element found but state/value wrong" assertion is never healed.
|
|
22
|
+
*/
|
|
23
|
+
healAssertionLocators: z.ZodDefault<z.ZodBoolean>;
|
|
17
24
|
}, "strip", z.ZodTypeAny, {
|
|
18
25
|
enabled: boolean;
|
|
19
26
|
maxLevel: number;
|
|
20
27
|
dailyBudget: number;
|
|
21
28
|
autoPR: boolean;
|
|
29
|
+
healAssertionLocators: boolean;
|
|
22
30
|
}, {
|
|
23
31
|
enabled: boolean;
|
|
24
32
|
maxLevel: number;
|
|
25
33
|
dailyBudget: number;
|
|
26
34
|
autoPR: boolean;
|
|
35
|
+
healAssertionLocators?: boolean | undefined;
|
|
27
36
|
}>;
|
|
28
37
|
declare const ReportingConfigSchema: z.ZodObject<{
|
|
29
38
|
allure: z.ZodBoolean;
|
|
@@ -81,16 +90,25 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
81
90
|
maxLevel: z.ZodNumber;
|
|
82
91
|
dailyBudget: z.ZodNumber;
|
|
83
92
|
autoPR: z.ZodBoolean;
|
|
93
|
+
/**
|
|
94
|
+
* Opt-in: when a locator INSIDE an assertion fails to resolve (e.g. a wrong
|
|
95
|
+
* frame selector in expect(...).toBeVisible()), re-resolve just the locator
|
|
96
|
+
* while preserving the matcher and asserted content. Off by default — a
|
|
97
|
+
* genuine "element found but state/value wrong" assertion is never healed.
|
|
98
|
+
*/
|
|
99
|
+
healAssertionLocators: z.ZodDefault<z.ZodBoolean>;
|
|
84
100
|
}, "strip", z.ZodTypeAny, {
|
|
85
101
|
enabled: boolean;
|
|
86
102
|
maxLevel: number;
|
|
87
103
|
dailyBudget: number;
|
|
88
104
|
autoPR: boolean;
|
|
105
|
+
healAssertionLocators: boolean;
|
|
89
106
|
}, {
|
|
90
107
|
enabled: boolean;
|
|
91
108
|
maxLevel: number;
|
|
92
109
|
dailyBudget: number;
|
|
93
110
|
autoPR: boolean;
|
|
111
|
+
healAssertionLocators?: boolean | undefined;
|
|
94
112
|
}>;
|
|
95
113
|
reporting: z.ZodObject<{
|
|
96
114
|
allure: z.ZodBoolean;
|
|
@@ -259,6 +277,21 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
259
277
|
actionTimeout: number;
|
|
260
278
|
idleTimeout: number;
|
|
261
279
|
}>>;
|
|
280
|
+
/**
|
|
281
|
+
* CI/CD pipeline integration.
|
|
282
|
+
*
|
|
283
|
+
* When `writeToRepo` is enabled, the Studio's CI Config Generator can write the
|
|
284
|
+
* generated workflow file directly into the project (e.g. .github/workflows/
|
|
285
|
+
* assuremind.yml) instead of being copy/download-only. Off by default — the user
|
|
286
|
+
* reviews and commits the file via the Git Control Center.
|
|
287
|
+
*/
|
|
288
|
+
ci: z.ZodDefault<z.ZodObject<{
|
|
289
|
+
writeToRepo: z.ZodBoolean;
|
|
290
|
+
}, "strip", z.ZodTypeAny, {
|
|
291
|
+
writeToRepo: boolean;
|
|
292
|
+
}, {
|
|
293
|
+
writeToRepo: boolean;
|
|
294
|
+
}>>;
|
|
262
295
|
}, "strip", z.ZodTypeAny, {
|
|
263
296
|
baseUrl: string;
|
|
264
297
|
environment: "dev" | "stage" | "test" | "prod";
|
|
@@ -286,6 +319,7 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
286
319
|
maxLevel: number;
|
|
287
320
|
dailyBudget: number;
|
|
288
321
|
autoPR: boolean;
|
|
322
|
+
healAssertionLocators: boolean;
|
|
289
323
|
};
|
|
290
324
|
reporting: {
|
|
291
325
|
allure: boolean;
|
|
@@ -327,6 +361,9 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
327
361
|
actionTimeout: number;
|
|
328
362
|
idleTimeout: number;
|
|
329
363
|
};
|
|
364
|
+
ci: {
|
|
365
|
+
writeToRepo: boolean;
|
|
366
|
+
};
|
|
330
367
|
activeProfile?: string | undefined;
|
|
331
368
|
device?: string | undefined;
|
|
332
369
|
}, {
|
|
@@ -344,6 +381,7 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
344
381
|
maxLevel: number;
|
|
345
382
|
dailyBudget: number;
|
|
346
383
|
autoPR: boolean;
|
|
384
|
+
healAssertionLocators?: boolean | undefined;
|
|
347
385
|
};
|
|
348
386
|
reporting: {
|
|
349
387
|
allure: boolean;
|
|
@@ -399,6 +437,9 @@ declare const AutotestConfigSchema: z.ZodObject<{
|
|
|
399
437
|
actionTimeout: number;
|
|
400
438
|
idleTimeout: number;
|
|
401
439
|
} | undefined;
|
|
440
|
+
ci?: {
|
|
441
|
+
writeToRepo: boolean;
|
|
442
|
+
} | undefined;
|
|
402
443
|
}>;
|
|
403
444
|
type HealingConfig = z.infer<typeof HealingConfigSchema>;
|
|
404
445
|
type ReportingConfig = z.infer<typeof ReportingConfigSchema>;
|
|
@@ -947,6 +988,8 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
947
988
|
finishedAt: z.ZodString;
|
|
948
989
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
949
990
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
991
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
992
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
950
993
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
951
994
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
952
995
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1099,6 +1142,7 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
1099
1142
|
browser: string;
|
|
1100
1143
|
startedAt: string;
|
|
1101
1144
|
finishedAt: string;
|
|
1145
|
+
downloadPaths: string[];
|
|
1102
1146
|
pageLoads: {
|
|
1103
1147
|
url: string;
|
|
1104
1148
|
stepIndex: number;
|
|
@@ -1173,6 +1217,7 @@ declare const TestCaseResultSchema: z.ZodObject<{
|
|
|
1173
1217
|
device?: string | undefined;
|
|
1174
1218
|
videoPath?: string | undefined;
|
|
1175
1219
|
tracePath?: string | undefined;
|
|
1220
|
+
downloadPaths?: string[] | undefined;
|
|
1176
1221
|
dataRowIndex?: number | undefined;
|
|
1177
1222
|
dataRow?: Record<string, string> | undefined;
|
|
1178
1223
|
pageLoads?: {
|
|
@@ -1325,6 +1370,8 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1325
1370
|
finishedAt: z.ZodString;
|
|
1326
1371
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
1327
1372
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
1373
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
1374
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1328
1375
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
1329
1376
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1330
1377
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -1477,6 +1524,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1477
1524
|
browser: string;
|
|
1478
1525
|
startedAt: string;
|
|
1479
1526
|
finishedAt: string;
|
|
1527
|
+
downloadPaths: string[];
|
|
1480
1528
|
pageLoads: {
|
|
1481
1529
|
url: string;
|
|
1482
1530
|
stepIndex: number;
|
|
@@ -1551,6 +1599,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1551
1599
|
device?: string | undefined;
|
|
1552
1600
|
videoPath?: string | undefined;
|
|
1553
1601
|
tracePath?: string | undefined;
|
|
1602
|
+
downloadPaths?: string[] | undefined;
|
|
1554
1603
|
dataRowIndex?: number | undefined;
|
|
1555
1604
|
dataRow?: Record<string, string> | undefined;
|
|
1556
1605
|
pageLoads?: {
|
|
@@ -1632,6 +1681,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1632
1681
|
browser: string;
|
|
1633
1682
|
startedAt: string;
|
|
1634
1683
|
finishedAt: string;
|
|
1684
|
+
downloadPaths: string[];
|
|
1635
1685
|
pageLoads: {
|
|
1636
1686
|
url: string;
|
|
1637
1687
|
stepIndex: number;
|
|
@@ -1716,6 +1766,7 @@ declare const SuiteResultSchema: z.ZodObject<{
|
|
|
1716
1766
|
device?: string | undefined;
|
|
1717
1767
|
videoPath?: string | undefined;
|
|
1718
1768
|
tracePath?: string | undefined;
|
|
1769
|
+
downloadPaths?: string[] | undefined;
|
|
1719
1770
|
dataRowIndex?: number | undefined;
|
|
1720
1771
|
dataRow?: Record<string, string> | undefined;
|
|
1721
1772
|
pageLoads?: {
|
|
@@ -1874,6 +1925,8 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
1874
1925
|
finishedAt: z.ZodString;
|
|
1875
1926
|
videoPath: z.ZodOptional<z.ZodString>;
|
|
1876
1927
|
tracePath: z.ZodOptional<z.ZodString>;
|
|
1928
|
+
/** Files downloaded during the case (absolute paths under results/downloads/). */
|
|
1929
|
+
downloadPaths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1877
1930
|
dataRowIndex: z.ZodOptional<z.ZodNumber>;
|
|
1878
1931
|
dataRow: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
1879
1932
|
pageLoads: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
@@ -2026,6 +2079,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2026
2079
|
browser: string;
|
|
2027
2080
|
startedAt: string;
|
|
2028
2081
|
finishedAt: string;
|
|
2082
|
+
downloadPaths: string[];
|
|
2029
2083
|
pageLoads: {
|
|
2030
2084
|
url: string;
|
|
2031
2085
|
stepIndex: number;
|
|
@@ -2100,6 +2154,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2100
2154
|
device?: string | undefined;
|
|
2101
2155
|
videoPath?: string | undefined;
|
|
2102
2156
|
tracePath?: string | undefined;
|
|
2157
|
+
downloadPaths?: string[] | undefined;
|
|
2103
2158
|
dataRowIndex?: number | undefined;
|
|
2104
2159
|
dataRow?: Record<string, string> | undefined;
|
|
2105
2160
|
pageLoads?: {
|
|
@@ -2181,6 +2236,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2181
2236
|
browser: string;
|
|
2182
2237
|
startedAt: string;
|
|
2183
2238
|
finishedAt: string;
|
|
2239
|
+
downloadPaths: string[];
|
|
2184
2240
|
pageLoads: {
|
|
2185
2241
|
url: string;
|
|
2186
2242
|
stepIndex: number;
|
|
@@ -2265,6 +2321,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2265
2321
|
device?: string | undefined;
|
|
2266
2322
|
videoPath?: string | undefined;
|
|
2267
2323
|
tracePath?: string | undefined;
|
|
2324
|
+
downloadPaths?: string[] | undefined;
|
|
2268
2325
|
dataRowIndex?: number | undefined;
|
|
2269
2326
|
dataRow?: Record<string, string> | undefined;
|
|
2270
2327
|
pageLoads?: {
|
|
@@ -2361,6 +2418,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2361
2418
|
browser: string;
|
|
2362
2419
|
startedAt: string;
|
|
2363
2420
|
finishedAt: string;
|
|
2421
|
+
downloadPaths: string[];
|
|
2364
2422
|
pageLoads: {
|
|
2365
2423
|
url: string;
|
|
2366
2424
|
stepIndex: number;
|
|
@@ -2458,6 +2516,7 @@ declare const RunResultSchema: z.ZodObject<{
|
|
|
2458
2516
|
device?: string | undefined;
|
|
2459
2517
|
videoPath?: string | undefined;
|
|
2460
2518
|
tracePath?: string | undefined;
|
|
2519
|
+
downloadPaths?: string[] | undefined;
|
|
2461
2520
|
dataRowIndex?: number | undefined;
|
|
2462
2521
|
dataRow?: Record<string, string> | undefined;
|
|
2463
2522
|
pageLoads?: {
|
|
@@ -2676,7 +2735,12 @@ interface HealingDecision {
|
|
|
2676
2735
|
strategy?: 'individual' | 'batch';
|
|
2677
2736
|
reason: string;
|
|
2678
2737
|
}
|
|
2679
|
-
|
|
2738
|
+
/**
|
|
2739
|
+
* - 'assertion' → element found but the asserted state/value is wrong (real bug; never healed)
|
|
2740
|
+
* - 'assertion-locator-missing'→ the locator inside an expect() didn't resolve (path broken; healable when opted in)
|
|
2741
|
+
* - 'infra' → broken selector/action on an interaction step (always healable)
|
|
2742
|
+
*/
|
|
2743
|
+
type FailureKind = 'assertion' | 'assertion-locator-missing' | 'infra';
|
|
2680
2744
|
interface StepFailure {
|
|
2681
2745
|
stepId: string;
|
|
2682
2746
|
instruction: string;
|