testeranto 0.172.0 → 0.177.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 +2 -4
- package/dist/common/src/PM/base.js +5 -1
- package/dist/common/src/PM/main.js +57 -54
- package/dist/common/src/PM/node.js +4 -1
- package/dist/common/src/PM/pure.js +4 -1
- package/dist/common/src/PM/web.js +6 -3
- package/dist/common/src/Pure.js +0 -4
- package/dist/common/src/Pure.test.js +1 -1
- package/dist/common/src/ReportServer.js +2 -126
- package/dist/common/src/ReportServer.test.ts/index.js +78 -0
- package/dist/common/src/ReportServerLib.js +141 -0
- package/dist/common/src/components/pure/ProjectPageView.test/implementation.js +1 -1
- package/dist/common/src/esbuildConfigs/node.js +1 -3
- package/dist/common/src/lib/BaseSuite.js +13 -11
- package/dist/common/src/lib/abstractBase.js +39 -40
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
- package/dist/common/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
- package/dist/common/src/lib/basebuilder.js +13 -2
- package/dist/common/src/lib/core.js +1 -0
- package/dist/common/src/lib/pmProxy.js +215 -201
- package/dist/common/src/lib/pmProxy.test/adapter.js +2 -2
- package/dist/common/src/lib/pmProxy.test/implementation.js +1 -1
- package/dist/common/testeranto.config.js +47 -32
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/PM/base.js +5 -1
- package/dist/module/src/PM/main.js +22 -19
- package/dist/module/src/PM/node.js +4 -1
- package/dist/module/src/PM/pure.js +4 -1
- package/dist/module/src/PM/web.js +6 -3
- package/dist/module/src/Pure.js +0 -4
- package/dist/module/src/Pure.test.js +1 -1
- package/dist/module/src/ReportServer.js +2 -123
- package/dist/module/src/ReportServer.test.ts/index.js +73 -0
- package/dist/module/src/ReportServerLib.js +134 -0
- package/dist/module/src/TestPage.js +29 -17
- package/dist/module/src/components/pure/ProjectPageView.test/implementation.js +1 -1
- package/dist/module/src/components/pure/TestPageView.js +29 -17
- package/dist/module/src/esbuildConfigs/node.js +1 -3
- package/dist/module/src/lib/BaseSuite.js +13 -11
- package/dist/module/src/lib/abstractBase.js +39 -40
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.implementation.js +10 -9
- package/dist/module/src/lib/baseBuilder.test/baseBuilder.test.specification.js +7 -7
- package/dist/module/src/lib/basebuilder.js +13 -2
- package/dist/module/src/lib/core.js +1 -0
- package/dist/module/src/lib/pmProxy.js +215 -201
- package/dist/module/src/lib/pmProxy.test/adapter.js +2 -2
- package/dist/module/src/lib/pmProxy.test/implementation.js +1 -1
- package/dist/module/testeranto.config.js +47 -32
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/App.js +3 -3
- package/dist/prebuild/ReportServer.mjs +21 -9
- package/dist/prebuild/build.mjs +1 -1
- package/dist/prebuild/run.mjs +27 -20
- package/dist/types/src/PM/base.d.ts +1 -1
- package/dist/types/src/PM/node.d.ts +1 -1
- package/dist/types/src/PM/pure.d.ts +1 -1
- package/dist/types/src/PM/web.d.ts +1 -1
- package/dist/types/src/ReportServer.test.ts/index.d.ts +29 -0
- package/dist/types/src/ReportServerLib.d.ts +1 -0
- package/dist/types/src/Types.d.ts +0 -1
- package/dist/types/src/components/pure/ProjectPageView.test/index.d.ts +2 -1
- package/dist/types/src/lib/BaseSuite.d.ts +2 -0
- package/dist/types/src/lib/abstractBase.d.ts +5 -7
- package/dist/types/src/lib/baseBuilder.test/baseBuilder.test.types.d.ts +7 -4
- package/dist/types/src/lib/pmProxy.d.ts +3 -3
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/PM/base.ts +7 -5
- package/src/PM/main.ts +26 -21
- package/src/PM/node.ts +6 -1
- package/src/PM/pure.ts +6 -1
- package/src/PM/web.ts +7 -3
- package/src/Pure.test.ts +6 -6
- package/src/Pure.ts +0 -8
- package/src/ReportServer.test.ts/index.ts +194 -0
- package/src/ReportServer.ts +2 -132
- package/src/ReportServerLib.ts +147 -0
- package/src/TestPage.tsx +65 -5
- package/src/Types.ts +0 -1
- package/src/components/pure/ProjectPageView.test/implementation.tsx +1 -1
- package/src/components/pure/TestPageView.tsx +65 -5
- package/src/esbuildConfigs/node.ts +1 -1
- package/src/lib/BaseSuite.ts +16 -21
- package/src/lib/abstractBase.ts +59 -48
- package/src/lib/baseBuilder.test/baseBuilder.test.implementation.ts +22 -10
- package/src/lib/baseBuilder.test/baseBuilder.test.specification.ts +9 -9
- package/src/lib/baseBuilder.test/baseBuilder.test.types.ts +7 -4
- package/src/lib/basebuilder.ts +13 -4
- package/src/lib/core.ts +1 -0
- package/src/lib/pmProxy.test/adapter.ts +2 -2
- package/src/lib/pmProxy.test/implementation.ts +3 -3
- package/src/lib/pmProxy.test/types.ts +0 -2
- package/src/lib/pmProxy.ts +135 -80
- package/testeranto/App.js +3 -3
- package/testeranto/bundles/node/core/metafile.json +8 -0
- package/testeranto/bundles/pure/core/metafile.json +8 -0
- package/testeranto/bundles/web/core/metafile.json +15086 -0
- package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.html +1 -1
- package/testeranto/bundles/web/{allTests → core}/src/components/pure/ProjectPageView.test/index.mjs +4109 -1642
- package/testeranto/projects.json +1 -1
- package/testeranto/reports/core/config.json +24 -0
- package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/lint_errors.txt +6 -1
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/logs.txt +59 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/message.txt +2 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/prompt.txt +27 -0
- package/testeranto/reports/core/src/components/pure/ProjectPageView.test/index/web/suite-0/given-basicRender/then-0/butThen/happyPath.png +0 -0
- package/testeranto/reports/{allTests → core}/src/components/pure/ProjectPageView.test/index/web/type_errors.txt +15 -33
- package/testeranto/reports/core/summary.json +9 -0
- package/testeranto.config.ts +49 -32
- package/tsc.log +78 -92
- package/testeranto/bundles/node/allTests/chunk-3EUGBAOM.mjs +0 -113
- package/testeranto/bundles/node/allTests/chunk-E75CSRER.mjs +0 -800
- package/testeranto/bundles/node/allTests/chunk-M6DO7VMB.mjs +0 -252
- package/testeranto/bundles/node/allTests/metafile.json +0 -1229
- package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test/node.test.mjs +0 -323
- package/testeranto/bundles/node/allTests/src/lib/baseBuilder.test/baseBuilder.test.node.mjs +0 -223
- package/testeranto/bundles/node/allTests/src/lib/classBuilder.test/classBuilder.test.mjs +0 -411
- package/testeranto/bundles/node/allTests/src/lib/core.test/core.test.mjs +0 -528
- package/testeranto/bundles/node/allTests/src/lib/pmProxy.test/index.mjs +0 -4752
- package/testeranto/bundles/pure/allTests/chunk-KHDVEHF7.mjs +0 -185
- package/testeranto/bundles/pure/allTests/chunk-VMUSFSZM.mjs +0 -797
- package/testeranto/bundles/pure/allTests/metafile.json +0 -1054
- package/testeranto/bundles/pure/allTests/src/Pure.test.mjs +0 -429
- package/testeranto/bundles/pure/allTests/src/lib/BaseSuite.test/pure.test.mjs +0 -425
- package/testeranto/bundles/pure/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure.mjs +0 -381
- package/testeranto/bundles/web/allTests/chunk-HPYA4YZC.mjs +0 -2283
- package/testeranto/bundles/web/allTests/chunk-U7AW26HL.mjs +0 -997
- package/testeranto/bundles/web/allTests/metafile.json +0 -25
- package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.html +0 -19
- package/testeranto/bundles/web/allTests/src/lib/BaseSuite.test/web.test.mjs +0 -440
- package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.html +0 -19
- package/testeranto/bundles/web/allTests/src/lib/baseBuilder.test/baseBuilder.test.web.mjs +0 -244
- package/testeranto/reports/allTests/config.json +0 -104
- package/testeranto/reports/allTests/src/Pure.test/pure/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/Pure.test/pure/message.txt +0 -2
- package/testeranto/reports/allTests/src/Pure.test/pure/prompt.txt +0 -13
- package/testeranto/reports/allTests/src/Pure.test/pure/type_errors.txt +0 -101
- package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/logs.txt +0 -50
- package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/message.txt +0 -2
- package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/prompt.txt +0 -17
- package/testeranto/reports/allTests/src/components/pure/ProjectPageView.test/index/web/tests.json +0 -32
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/logs.txt +0 -52
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/prompt.txt +0 -13
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/tests.json +0 -31
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/node.test/node/type_errors.txt +0 -111
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/prompt.txt +0 -14
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/tests.json +0 -31
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/pure.test/pure/type_errors.txt +0 -111
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/logs.txt +0 -108
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/prompt.txt +0 -14
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/tests.json +0 -31
- package/testeranto/reports/allTests/src/lib/BaseSuite.test/web.test/web/type_errors.txt +0 -111
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/logs.txt +0 -35
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/prompt.txt +0 -16
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/tests.json +0 -77
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.node/node/type_errors.txt +0 -62
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/prompt.txt +0 -18
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.pure/pure/type_errors.txt +0 -62
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/logs.txt +0 -69
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/prompt.txt +0 -16
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/tests.json +0 -77
- package/testeranto/reports/allTests/src/lib/baseBuilder.test/baseBuilder.test.web/web/type_errors.txt +0 -62
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/lint_errors.txt +0 -0
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/logs.txt +0 -700
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/prompt.txt +0 -16
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/tests.json +0 -164
- package/testeranto/reports/allTests/src/lib/classBuilder.test/classBuilder.test/node/type_errors.txt +0 -138
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/lint_errors.txt +0 -21
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/logs.txt +0 -7
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/prompt.txt +0 -18
- package/testeranto/reports/allTests/src/lib/core.test/core.test/node/type_errors.txt +0 -63
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/bdd_errors.txt +0 -1
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/lint_errors.txt +0 -20
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/logs.txt +0 -31
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/message.txt +0 -2
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/prompt.txt +0 -16
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/tests.json +0 -134
- package/testeranto/reports/allTests/src/lib/pmProxy.test/index/node/type_errors.txt +0 -76
- package/testeranto/reports/allTests/summary.json +0 -79
- package/testeranto/reportsnode_build_errors +0 -20
- package/testeranto/reportspure_build_errors +0 -343
- package/testeranto/reportsweb_build_errors +0 -25
|
@@ -4,7 +4,7 @@ import { ITestImplementation } from "../../CoreTypes";
|
|
|
4
4
|
import { MockBaseBuilder } from "./baseBuilder.test.mock";
|
|
5
5
|
|
|
6
6
|
import { I, O } from "./baseBuilder.test.types";
|
|
7
|
-
import { ITTestResourceRequest } from "..";
|
|
7
|
+
import { ITestJob, ITTestResourceRequest } from "..";
|
|
8
8
|
import { BaseBuilder } from "../basebuilder";
|
|
9
9
|
|
|
10
10
|
// Define our test subject type
|
|
@@ -16,7 +16,7 @@ export const implementation: ITestImplementation<I, O, {}> = {
|
|
|
16
16
|
},
|
|
17
17
|
|
|
18
18
|
givens: {
|
|
19
|
-
|
|
19
|
+
"the default BaseBuilder": () => {
|
|
20
20
|
return new MockBaseBuilder(
|
|
21
21
|
{}, // input
|
|
22
22
|
{}, // suitesOverrides
|
|
@@ -27,11 +27,21 @@ export const implementation: ITestImplementation<I, O, {}> = {
|
|
|
27
27
|
() => [] // testSpecification
|
|
28
28
|
);
|
|
29
29
|
},
|
|
30
|
-
|
|
31
|
-
return new MockBaseBuilder(
|
|
30
|
+
"a BaseBuilder with TestInput": (input: any) => {
|
|
31
|
+
return new MockBaseBuilder(
|
|
32
|
+
input,
|
|
33
|
+
{},
|
|
34
|
+
{},
|
|
35
|
+
{},
|
|
36
|
+
{},
|
|
37
|
+
{ ports: [] },
|
|
38
|
+
() => []
|
|
39
|
+
);
|
|
32
40
|
},
|
|
33
|
-
|
|
34
|
-
|
|
41
|
+
"a BaseBuilder with Test Resource Requirements": (
|
|
42
|
+
requirements: ITTestResourceRequest
|
|
43
|
+
) => {
|
|
44
|
+
return new MockBaseBuilder({}, {}, {}, {}, {}, requirements, () => []);
|
|
35
45
|
},
|
|
36
46
|
},
|
|
37
47
|
|
|
@@ -47,7 +57,9 @@ export const implementation: ITestImplementation<I, O, {}> = {
|
|
|
47
57
|
},
|
|
48
58
|
|
|
49
59
|
thens: {
|
|
50
|
-
|
|
60
|
+
"it is initialized": () => (builder, utils) => {
|
|
61
|
+
utils.writeFileSync("hello.txt", "world");
|
|
62
|
+
|
|
51
63
|
if (!(builder instanceof BaseBuilder)) {
|
|
52
64
|
console.error("Builder instance:", builder);
|
|
53
65
|
throw new Error(
|
|
@@ -72,19 +84,19 @@ export const implementation: ITestImplementation<I, O, {}> = {
|
|
|
72
84
|
|
|
73
85
|
return builder;
|
|
74
86
|
},
|
|
75
|
-
|
|
87
|
+
"it generates TestSpecifications": () => (builder: TestSubject) => {
|
|
76
88
|
if (!Array.isArray(builder.specs)) {
|
|
77
89
|
throw new Error("Specs were not generated");
|
|
78
90
|
}
|
|
79
91
|
return builder;
|
|
80
92
|
},
|
|
81
|
-
|
|
93
|
+
"it creates jobs": () => (builder: TestSubject) => {
|
|
82
94
|
if (!Array.isArray(builder.testJobs)) {
|
|
83
95
|
throw new Error("Test jobs were not created");
|
|
84
96
|
}
|
|
85
97
|
return builder;
|
|
86
98
|
},
|
|
87
|
-
|
|
99
|
+
"it tracks artifacts": () => (builder: TestSubject) => {
|
|
88
100
|
if (!Array.isArray(builder.artifacts)) {
|
|
89
101
|
throw new Error("Artifacts array not initialized");
|
|
90
102
|
}
|
|
@@ -10,25 +10,25 @@ export const specification: ITestSpecification<I, O> = (
|
|
|
10
10
|
) => {
|
|
11
11
|
return [
|
|
12
12
|
Suite.Default("Testing BaseBuilder functionality", {
|
|
13
|
-
testInitialization: Given
|
|
13
|
+
testInitialization: Given["the default BaseBuilder"](
|
|
14
14
|
["BaseBuilder should initialize correctly"],
|
|
15
15
|
[],
|
|
16
16
|
[
|
|
17
|
-
Then
|
|
18
|
-
Then
|
|
19
|
-
Then
|
|
20
|
-
Then
|
|
17
|
+
Then["it is initialized"](),
|
|
18
|
+
Then["it tracks artifacts"](),
|
|
19
|
+
// Then["it creates jobs"](),
|
|
20
|
+
// Then["it generates TestSpecifications"](),
|
|
21
21
|
]
|
|
22
22
|
),
|
|
23
|
-
testSpecsGeneration: Given
|
|
23
|
+
testSpecsGeneration: Given["the default BaseBuilder"](
|
|
24
24
|
["BaseBuilder should generate specs from test specification"],
|
|
25
25
|
[],
|
|
26
|
-
[Then
|
|
26
|
+
[Then["it generates TestSpecifications"]()]
|
|
27
27
|
),
|
|
28
|
-
testJobsCreation: Given
|
|
28
|
+
testJobsCreation: Given["the default BaseBuilder"](
|
|
29
29
|
["BaseBuilder should create test jobs"],
|
|
30
30
|
[],
|
|
31
|
-
[Then
|
|
31
|
+
[Then["it creates jobs"]()]
|
|
32
32
|
),
|
|
33
33
|
}),
|
|
34
34
|
];
|
|
@@ -20,14 +20,17 @@ export type O = Ibdd_out<
|
|
|
20
20
|
},
|
|
21
21
|
// Givens
|
|
22
22
|
{
|
|
23
|
-
|
|
23
|
+
"the default BaseBuilder": [];
|
|
24
|
+
"a BaseBuilder with TestInput": [];
|
|
25
|
+
"a BaseBuilder with Test Resource Requirements": [];
|
|
24
26
|
},
|
|
25
27
|
// Whens
|
|
26
28
|
{}, // No whens in these tests
|
|
27
29
|
// Thens
|
|
28
30
|
{
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
"it is initialized": [];
|
|
32
|
+
"it generates TestSpecifications": [];
|
|
33
|
+
"it creates jobs": [];
|
|
34
|
+
"it tracks artifacts": [];
|
|
32
35
|
}
|
|
33
36
|
>;
|
package/src/lib/basebuilder.ts
CHANGED
|
@@ -72,6 +72,7 @@ export abstract class BaseBuilder<
|
|
|
72
72
|
const suiteRunner =
|
|
73
73
|
(suite: BaseSuite<I, O>) =>
|
|
74
74
|
async (puppetMaster: IPM, tLog: ITLog): Promise<BaseSuite<I, O>> => {
|
|
75
|
+
console.log("mark17");
|
|
75
76
|
const x = await suite.run(
|
|
76
77
|
input,
|
|
77
78
|
puppetMaster.testResourceConfiguration,
|
|
@@ -85,6 +86,7 @@ export abstract class BaseBuilder<
|
|
|
85
86
|
tLog,
|
|
86
87
|
puppetMaster
|
|
87
88
|
);
|
|
89
|
+
console.log("mark18");
|
|
88
90
|
|
|
89
91
|
return x;
|
|
90
92
|
};
|
|
@@ -113,7 +115,9 @@ export abstract class BaseBuilder<
|
|
|
113
115
|
//
|
|
114
116
|
};
|
|
115
117
|
|
|
118
|
+
console.log("mark14");
|
|
116
119
|
const suiteDone: BaseSuite<I, O> = await runner(puppetMaster, tLog);
|
|
120
|
+
console.log("mark15");
|
|
117
121
|
|
|
118
122
|
// const logPromise = new Promise(async (res) => {
|
|
119
123
|
// await puppetMaster.end(access);
|
|
@@ -122,12 +126,17 @@ export abstract class BaseBuilder<
|
|
|
122
126
|
|
|
123
127
|
const fails = suiteDone.fails;
|
|
124
128
|
|
|
125
|
-
await puppetMaster.writeFileSync(
|
|
129
|
+
await puppetMaster.writeFileSync([
|
|
130
|
+
`bdd_errors.txt`,
|
|
131
|
+
fails.toString(),
|
|
132
|
+
]);
|
|
126
133
|
|
|
127
|
-
await puppetMaster.writeFileSync(
|
|
134
|
+
await puppetMaster.writeFileSync([
|
|
128
135
|
`tests.json`,
|
|
129
|
-
JSON.stringify(this.toObj(), null, 2)
|
|
130
|
-
);
|
|
136
|
+
JSON.stringify(this.toObj(), null, 2),
|
|
137
|
+
]);
|
|
138
|
+
|
|
139
|
+
console.log("mark13");
|
|
131
140
|
|
|
132
141
|
return {
|
|
133
142
|
failed: fails > 0,
|
package/src/lib/core.ts
CHANGED
|
@@ -22,12 +22,12 @@ export const testAdapter: ITestAdapter<I> = {
|
|
|
22
22
|
},
|
|
23
23
|
|
|
24
24
|
andWhen: async (store, whenCB, testResource, pm) => {
|
|
25
|
-
const proxiedPM = andWhenProxy(pm, "some/path");
|
|
25
|
+
const proxiedPM = andWhenProxy(pm, "some/path", store);
|
|
26
26
|
return whenCB(store, proxiedPM);
|
|
27
27
|
},
|
|
28
28
|
|
|
29
29
|
butThen: async (store, thenCB, testResource, pm) => {
|
|
30
|
-
const proxiedPM = butThenProxy(pm, "some/path");
|
|
30
|
+
const proxiedPM = butThenProxy(pm, "some/path", store);
|
|
31
31
|
return thenCB(store, proxiedPM);
|
|
32
32
|
},
|
|
33
33
|
|
|
@@ -20,11 +20,11 @@ export const implementation: ITestImplementation<I, O, M> = {
|
|
|
20
20
|
},
|
|
21
21
|
thens: {
|
|
22
22
|
theButTheProxyReturns:
|
|
23
|
-
(method:
|
|
24
|
-
(store: {
|
|
23
|
+
(method: string, expectedPath: string) =>
|
|
24
|
+
(store: { pathRewriter: PathRewriter }) => {
|
|
25
25
|
const mockPm = new MockPMBase() as unknown as IPM;
|
|
26
26
|
const filepath = "test/path";
|
|
27
|
-
const
|
|
27
|
+
const rewritePath = createPathRewriter(`${filepath}/butThen`);
|
|
28
28
|
|
|
29
29
|
let actualPath: string;
|
|
30
30
|
let actualContent: any;
|
package/src/lib/pmProxy.ts
CHANGED
|
@@ -8,9 +8,14 @@ export type IProxyBase = (
|
|
|
8
8
|
mappings: [string, (...x: any) => any][]
|
|
9
9
|
) => IPM;
|
|
10
10
|
|
|
11
|
-
export type IProxy = (pm: IPM, filepath: string) => IPM;
|
|
12
|
-
export type IProxyAfterEach = (
|
|
13
|
-
|
|
11
|
+
export type IProxy = (pm: IPM, filepath: string, step: any) => IPM;
|
|
12
|
+
export type IProxyAfterEach = (
|
|
13
|
+
pm: IPM,
|
|
14
|
+
suite: string,
|
|
15
|
+
given: string,
|
|
16
|
+
step: any
|
|
17
|
+
) => IPM;
|
|
18
|
+
export type IProxyBeforeEach = (pm: IPM, suite: string, step: any) => IPM;
|
|
14
19
|
|
|
15
20
|
export type IProxiedFunctions =
|
|
16
21
|
| "screencast"
|
|
@@ -38,18 +43,31 @@ const baseProxy: IProxyBase = function (
|
|
|
38
43
|
});
|
|
39
44
|
};
|
|
40
45
|
|
|
41
|
-
export const butThenProxy: IProxy = (
|
|
46
|
+
export const butThenProxy: IProxy = (
|
|
47
|
+
pm: IPM,
|
|
48
|
+
filepath: string,
|
|
49
|
+
addArtifact
|
|
50
|
+
) => {
|
|
42
51
|
return baseProxy(pm, [
|
|
43
52
|
[
|
|
44
53
|
"screencast",
|
|
45
54
|
(opts, p) => {
|
|
46
55
|
const path = `${filepath}/butThen/${opts.path}`;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
addArtifact(path);
|
|
57
|
+
// console.log(
|
|
58
|
+
// `[ARTIFACT] Preparing to add to ${step.constructor.name}:`,
|
|
59
|
+
// path
|
|
60
|
+
// );
|
|
61
|
+
// try {
|
|
62
|
+
|
|
63
|
+
// console.log(
|
|
64
|
+
// `[ARTIFACT] Successfully added to ${step.constructor.name}`
|
|
65
|
+
// );
|
|
66
|
+
// console.log(`[ARTIFACT] Current artifacts:`, JSON.stringify(step.artifacts));
|
|
67
|
+
// } catch (e) {
|
|
68
|
+
// console.error(`[ARTIFACT] Failed to add ${path}:`, e);
|
|
69
|
+
// throw e;
|
|
70
|
+
// }
|
|
53
71
|
return [
|
|
54
72
|
{
|
|
55
73
|
...opts,
|
|
@@ -59,32 +77,27 @@ export const butThenProxy: IProxy = (pm: IPM, filepath: string) => {
|
|
|
59
77
|
];
|
|
60
78
|
},
|
|
61
79
|
],
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
return [path];
|
|
72
|
-
}],
|
|
73
|
-
|
|
80
|
+
[
|
|
81
|
+
"createWriteStream",
|
|
82
|
+
(fp) => {
|
|
83
|
+
const path = `${filepath}/butThen/${fp}`;
|
|
84
|
+
addArtifact(path);
|
|
85
|
+
return [path];
|
|
86
|
+
},
|
|
87
|
+
],
|
|
74
88
|
[
|
|
75
89
|
"writeFileSync",
|
|
76
90
|
(fp, contents) => {
|
|
77
91
|
const path = `${filepath}/butThen/${fp}`;
|
|
78
|
-
(
|
|
92
|
+
addArtifact(path);
|
|
79
93
|
return [path, contents];
|
|
80
94
|
},
|
|
81
95
|
],
|
|
82
|
-
|
|
83
96
|
[
|
|
84
97
|
"customScreenShot",
|
|
85
98
|
(opts, p) => {
|
|
86
99
|
const path = `${filepath}/butThen/${opts.path}`;
|
|
87
|
-
(
|
|
100
|
+
addArtifact(path);
|
|
88
101
|
return [
|
|
89
102
|
{
|
|
90
103
|
...opts,
|
|
@@ -97,13 +110,17 @@ export const butThenProxy: IProxy = (pm: IPM, filepath: string) => {
|
|
|
97
110
|
]);
|
|
98
111
|
};
|
|
99
112
|
|
|
100
|
-
export const andWhenProxy: IProxy = (
|
|
101
|
-
|
|
113
|
+
export const andWhenProxy: IProxy = (
|
|
114
|
+
pm: IPM,
|
|
115
|
+
filepath: string,
|
|
116
|
+
addArtifact
|
|
117
|
+
) => {
|
|
118
|
+
return baseProxy(pm, [
|
|
102
119
|
[
|
|
103
120
|
"screencast",
|
|
104
121
|
(opts, p) => {
|
|
105
122
|
const path = `${filepath}/andWhen/${opts.path}`;
|
|
106
|
-
(
|
|
123
|
+
addArtifact(path);
|
|
107
124
|
return [
|
|
108
125
|
{
|
|
109
126
|
...opts,
|
|
@@ -114,23 +131,30 @@ export const andWhenProxy: IProxy = (pm: IPM, filepath: string) =>
|
|
|
114
131
|
},
|
|
115
132
|
],
|
|
116
133
|
|
|
117
|
-
[
|
|
118
|
-
|
|
119
|
-
(
|
|
120
|
-
|
|
121
|
-
|
|
134
|
+
[
|
|
135
|
+
"createWriteStream",
|
|
136
|
+
(fp) => {
|
|
137
|
+
const path = `${filepath}/andWhen/${fp}`;
|
|
138
|
+
addArtifact(path);
|
|
139
|
+
return [path];
|
|
140
|
+
},
|
|
141
|
+
],
|
|
122
142
|
|
|
123
|
-
[
|
|
124
|
-
|
|
125
|
-
(
|
|
126
|
-
|
|
127
|
-
|
|
143
|
+
[
|
|
144
|
+
"writeFileSync",
|
|
145
|
+
(fp, contents) => {
|
|
146
|
+
const path = `${filepath}/andWhen/${fp}`;
|
|
147
|
+
addArtifact(path);
|
|
148
|
+
return [path, contents];
|
|
149
|
+
},
|
|
150
|
+
],
|
|
128
151
|
|
|
129
152
|
[
|
|
130
153
|
"customScreenShot",
|
|
131
154
|
(opts, p) => {
|
|
132
155
|
const path = `${filepath}/andWhen/${opts.path}`;
|
|
133
|
-
(
|
|
156
|
+
// console.log("STEP2", JSON.stringify(step));
|
|
157
|
+
addArtifact(path);
|
|
134
158
|
return [
|
|
135
159
|
{
|
|
136
160
|
...opts,
|
|
@@ -141,18 +165,20 @@ export const andWhenProxy: IProxy = (pm: IPM, filepath: string) =>
|
|
|
141
165
|
},
|
|
142
166
|
],
|
|
143
167
|
]);
|
|
168
|
+
};
|
|
144
169
|
|
|
145
170
|
export const afterEachProxy: IProxyAfterEach = (
|
|
146
171
|
pm: IPM,
|
|
147
172
|
suite: string,
|
|
148
|
-
given: string
|
|
149
|
-
|
|
150
|
-
|
|
173
|
+
given: string,
|
|
174
|
+
addArtifact
|
|
175
|
+
): IPM => {
|
|
176
|
+
return baseProxy(pm, [
|
|
151
177
|
[
|
|
152
178
|
"screencast",
|
|
153
179
|
(opts, p) => {
|
|
154
180
|
const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
|
|
155
|
-
(
|
|
181
|
+
addArtifact(path);
|
|
156
182
|
return [
|
|
157
183
|
{
|
|
158
184
|
...opts,
|
|
@@ -163,17 +189,19 @@ export const afterEachProxy: IProxyAfterEach = (
|
|
|
163
189
|
},
|
|
164
190
|
],
|
|
165
191
|
|
|
166
|
-
[
|
|
167
|
-
|
|
168
|
-
(
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
192
|
+
[
|
|
193
|
+
"createWriteStream",
|
|
194
|
+
(fp) => {
|
|
195
|
+
const path = `suite-${suite}/afterEach/${fp}`;
|
|
196
|
+
addArtifact(path);
|
|
197
|
+
return [path];
|
|
198
|
+
},
|
|
199
|
+
],
|
|
172
200
|
[
|
|
173
201
|
"writeFileSync",
|
|
174
202
|
(fp, contents) => {
|
|
175
203
|
const path = `suite-${suite}/given-${given}/afterEach/${fp}`;
|
|
176
|
-
(
|
|
204
|
+
addArtifact(path);
|
|
177
205
|
return [path, contents];
|
|
178
206
|
},
|
|
179
207
|
],
|
|
@@ -182,7 +210,8 @@ export const afterEachProxy: IProxyAfterEach = (
|
|
|
182
210
|
"customScreenShot",
|
|
183
211
|
(opts, p) => {
|
|
184
212
|
const path = `suite-${suite}/given-${given}/afterEach/${opts.path}`;
|
|
185
|
-
(
|
|
213
|
+
addArtifact(path);
|
|
214
|
+
// console.log("STEP3", JSON.stringify(step));
|
|
186
215
|
return [
|
|
187
216
|
{
|
|
188
217
|
...opts,
|
|
@@ -193,17 +222,20 @@ export const afterEachProxy: IProxyAfterEach = (
|
|
|
193
222
|
},
|
|
194
223
|
],
|
|
195
224
|
]);
|
|
225
|
+
};
|
|
196
226
|
|
|
197
227
|
export const beforeEachProxy: IProxyBeforeEach = (
|
|
198
228
|
pm: IPM,
|
|
199
|
-
suite: string
|
|
200
|
-
|
|
201
|
-
|
|
229
|
+
suite: string,
|
|
230
|
+
addArtifact
|
|
231
|
+
): IPM => {
|
|
232
|
+
return baseProxy(pm, [
|
|
202
233
|
[
|
|
203
234
|
"screencast",
|
|
204
235
|
(opts, p) => {
|
|
205
236
|
const path = `suite-${suite}/beforeEach/${opts.path}`;
|
|
206
|
-
(
|
|
237
|
+
addArtifact(path);
|
|
238
|
+
|
|
207
239
|
return [
|
|
208
240
|
{
|
|
209
241
|
...opts,
|
|
@@ -218,7 +250,7 @@ export const beforeEachProxy: IProxyBeforeEach = (
|
|
|
218
250
|
"writeFileSync",
|
|
219
251
|
(fp, contents) => {
|
|
220
252
|
const path = `suite-${suite}/beforeEach/${fp}`;
|
|
221
|
-
(
|
|
253
|
+
addArtifact(path);
|
|
222
254
|
return [path, contents];
|
|
223
255
|
},
|
|
224
256
|
],
|
|
@@ -227,7 +259,7 @@ export const beforeEachProxy: IProxyBeforeEach = (
|
|
|
227
259
|
"customScreenShot",
|
|
228
260
|
(opts, p) => {
|
|
229
261
|
const path = `suite-${suite}/beforeEach/${opts.path}`;
|
|
230
|
-
(
|
|
262
|
+
addArtifact(path);
|
|
231
263
|
return [
|
|
232
264
|
{
|
|
233
265
|
...opts,
|
|
@@ -238,20 +270,29 @@ export const beforeEachProxy: IProxyBeforeEach = (
|
|
|
238
270
|
},
|
|
239
271
|
],
|
|
240
272
|
|
|
241
|
-
[
|
|
242
|
-
|
|
243
|
-
(
|
|
244
|
-
|
|
245
|
-
|
|
273
|
+
[
|
|
274
|
+
"createWriteStream",
|
|
275
|
+
(fp) => {
|
|
276
|
+
const path = `suite-${suite}/beforeEach/${fp}`;
|
|
277
|
+
addArtifact(path);
|
|
278
|
+
return [path];
|
|
279
|
+
},
|
|
280
|
+
],
|
|
246
281
|
]);
|
|
282
|
+
};
|
|
247
283
|
|
|
248
|
-
export const beforeAllProxy: IProxy = (
|
|
249
|
-
|
|
284
|
+
export const beforeAllProxy: IProxy = (
|
|
285
|
+
pm: IPM,
|
|
286
|
+
suite: string,
|
|
287
|
+
addArtifact
|
|
288
|
+
): IPM => {
|
|
289
|
+
return baseProxy(pm, [
|
|
250
290
|
[
|
|
251
291
|
"writeFileSync",
|
|
252
292
|
(fp, contents) => {
|
|
253
293
|
const path = `suite-${suite}/beforeAll/${fp}`;
|
|
254
|
-
(
|
|
294
|
+
addArtifact(path);
|
|
295
|
+
|
|
255
296
|
return [path, contents];
|
|
256
297
|
},
|
|
257
298
|
],
|
|
@@ -260,7 +301,7 @@ export const beforeAllProxy: IProxy = (pm: IPM, suite: string): IPM =>
|
|
|
260
301
|
"customScreenShot",
|
|
261
302
|
(opts, p) => {
|
|
262
303
|
const path = `suite-${suite}/beforeAll/${opts.path}`;
|
|
263
|
-
(
|
|
304
|
+
addArtifact(path);
|
|
264
305
|
return [
|
|
265
306
|
{
|
|
266
307
|
...opts,
|
|
@@ -271,26 +312,38 @@ export const beforeAllProxy: IProxy = (pm: IPM, suite: string): IPM =>
|
|
|
271
312
|
},
|
|
272
313
|
],
|
|
273
314
|
|
|
274
|
-
[
|
|
275
|
-
|
|
276
|
-
(
|
|
277
|
-
|
|
278
|
-
|
|
315
|
+
[
|
|
316
|
+
"createWriteStream",
|
|
317
|
+
(fp) => {
|
|
318
|
+
const path = `suite-${suite}/beforeAll/${fp}`;
|
|
319
|
+
addArtifact(path);
|
|
320
|
+
return [path];
|
|
321
|
+
},
|
|
322
|
+
],
|
|
279
323
|
]);
|
|
324
|
+
};
|
|
280
325
|
|
|
281
|
-
export const afterAllProxy: IProxy = (
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
326
|
+
export const afterAllProxy: IProxy = (
|
|
327
|
+
pm: IPM,
|
|
328
|
+
suite: string,
|
|
329
|
+
addArtifact
|
|
330
|
+
): IPM => {
|
|
331
|
+
return baseProxy(pm, [
|
|
332
|
+
[
|
|
333
|
+
"createWriteStream",
|
|
334
|
+
(fp) => {
|
|
335
|
+
const path = `suite-${suite}/afterAll/${fp}`;
|
|
336
|
+
addArtifact(path);
|
|
337
|
+
return [path];
|
|
338
|
+
},
|
|
339
|
+
],
|
|
288
340
|
|
|
289
341
|
[
|
|
290
342
|
"writeFileSync",
|
|
291
343
|
(fp, contents) => {
|
|
292
344
|
const path = `suite-${suite}/afterAll/${fp}`;
|
|
293
|
-
|
|
345
|
+
console.log("MARK10");
|
|
346
|
+
addArtifact(path);
|
|
294
347
|
return [path, contents];
|
|
295
348
|
},
|
|
296
349
|
],
|
|
@@ -299,7 +352,8 @@ export const afterAllProxy: IProxy = (pm: IPM, suite: string): IPM =>
|
|
|
299
352
|
"customScreenShot",
|
|
300
353
|
(opts, p) => {
|
|
301
354
|
const path = `suite-${suite}/afterAll/${opts.path}`;
|
|
302
|
-
(
|
|
355
|
+
addArtifact(path);
|
|
356
|
+
console.log("MARK9");
|
|
303
357
|
return [
|
|
304
358
|
{
|
|
305
359
|
...opts,
|
|
@@ -310,3 +364,4 @@ export const afterAllProxy: IProxy = (pm: IPM, suite: string): IPM =>
|
|
|
310
364
|
},
|
|
311
365
|
],
|
|
312
366
|
]);
|
|
367
|
+
};
|
package/testeranto/App.js
CHANGED
|
@@ -32271,7 +32271,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
|
32271
32271
|
onClick: () => navigate(`/projects/${projectName}#${runtime}`)
|
|
32272
32272
|
},
|
|
32273
32273
|
"View Build Logs"
|
|
32274
|
-
))) : testData ? /* @__PURE__ */ import_react58.default.createElement("div", { className: "test-results" }, testData.givens.map((given, i) => /* @__PURE__ */ import_react58.default.createElement("div", { key: i, className: "mb-4 card" }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "card-header bg-primary text-white" }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-center" }, /* @__PURE__ */ import_react58.default.createElement("h4", null, "Given: ", given.name), given.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "dropdown" }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32274
|
+
))) : testData ? /* @__PURE__ */ import_react58.default.createElement("div", { className: "test-results" }, testData.givens.map((given, i) => /* @__PURE__ */ import_react58.default.createElement("div", { key: i, className: "mb-4 card" }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "card-header bg-primary text-white" }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-center" }, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("h4", null, "Given: ", given.name), given.features?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "mt-1" }, /* @__PURE__ */ import_react58.default.createElement("small", null, "Features:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, given.features.map((feature, fi) => /* @__PURE__ */ import_react58.default.createElement("li", { key: fi }, feature.startsWith("http") ? /* @__PURE__ */ import_react58.default.createElement("a", { href: feature, target: "_blank", rel: "noopener noreferrer", className: "text-white" }, new URL(feature).hostname) : /* @__PURE__ */ import_react58.default.createElement("span", { className: "text-white" }, feature)))))), given.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "dropdown" }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32275
32275
|
"button",
|
|
32276
32276
|
{
|
|
32277
32277
|
className: "btn btn-sm btn-light dropdown-toggle",
|
|
@@ -32290,7 +32290,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
|
32290
32290
|
rel: "noopener noreferrer"
|
|
32291
32291
|
},
|
|
32292
32292
|
artifact.split("/").pop()
|
|
32293
|
-
))))))), /* @__PURE__ */ import_react58.default.createElement("div", { className: "card-body" }, given.whens.map((when, j) => /* @__PURE__ */ import_react58.default.createElement("div", { key: `w-${j}`, className: `p-3 mb-2 ${when.error ? "bg-danger text-white" : "bg-success text-white"}` }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-start" }, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("strong", null, "When:"), " ", when.name, when.error && /* @__PURE__ */ import_react58.default.createElement("pre", { className: "mt-2" }, when.error)), when.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "ms-3" }, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Artifacts:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, when.artifacts.map((artifact, ai) => /* @__PURE__ */ import_react58.default.createElement("li", { key: ai }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32293
|
+
))))))), /* @__PURE__ */ import_react58.default.createElement("div", { className: "card-body" }, given.whens.map((when, j) => /* @__PURE__ */ import_react58.default.createElement("div", { key: `w-${j}`, className: `p-3 mb-2 ${when.error ? "bg-danger text-white" : "bg-success text-white"}` }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-start" }, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("strong", null, "When:"), " ", when.name, when.features?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "mt-2" }, /* @__PURE__ */ import_react58.default.createElement("small", null, "Features:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, when.features.map((feature, fi) => /* @__PURE__ */ import_react58.default.createElement("li", { key: fi }, feature.startsWith("http") ? /* @__PURE__ */ import_react58.default.createElement("a", { href: feature, target: "_blank", rel: "noopener noreferrer" }, new URL(feature).hostname) : feature)))), when.error && /* @__PURE__ */ import_react58.default.createElement("pre", { className: "mt-2" }, when.error))), when.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "ms-3" }, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Artifacts:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, when.artifacts.map((artifact, ai) => /* @__PURE__ */ import_react58.default.createElement("li", { key: ai }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32294
32294
|
"a",
|
|
32295
32295
|
{
|
|
32296
32296
|
href: `/testeranto/reports/${projectName}/${testName2.split(".").slice(0, -1).join(".")}/${runtime}/${artifact}`,
|
|
@@ -32299,7 +32299,7 @@ Please change the parent <Route path="${parentPath}"> to <Route path="${parentPa
|
|
|
32299
32299
|
rel: "noopener noreferrer"
|
|
32300
32300
|
},
|
|
32301
32301
|
artifact.split("/").pop()
|
|
32302
|
-
)))))))), given.thens.map((then, k) => /* @__PURE__ */ import_react58.default.createElement("div", { key: `t-${k}`, className: `p-3 mb-2 ${then.error ? "bg-danger text-white" : "bg-success text-white"}` }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-start" }, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Then:"), " ", then.name, then.error && /* @__PURE__ */ import_react58.default.createElement("pre", { className: "mt-2" }, then.error)), then.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "ms-3" }, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Artifacts:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, then.artifacts.map((artifact, ai) => /* @__PURE__ */ import_react58.default.createElement("li", { key: ai }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32302
|
+
)))))))), given.thens.map((then, k) => /* @__PURE__ */ import_react58.default.createElement("div", { key: `t-${k}`, className: `p-3 mb-2 ${then.error ? "bg-danger text-white" : "bg-success text-white"}` }, /* @__PURE__ */ import_react58.default.createElement("div", { className: "d-flex justify-content-between align-items-start" }, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("div", null, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Then:"), " ", then.name, then.features?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "mt-2" }, /* @__PURE__ */ import_react58.default.createElement("small", null, "Features:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, then.features.map((feature, fi) => /* @__PURE__ */ import_react58.default.createElement("li", { key: fi }, feature.startsWith("http") ? /* @__PURE__ */ import_react58.default.createElement("a", { href: feature, target: "_blank", rel: "noopener noreferrer" }, new URL(feature).hostname) : feature)))), then.error && /* @__PURE__ */ import_react58.default.createElement("pre", { className: "mt-2" }, then.error))), then.artifacts?.length > 0 && /* @__PURE__ */ import_react58.default.createElement("div", { className: "ms-3" }, /* @__PURE__ */ import_react58.default.createElement("strong", null, "Artifacts:"), /* @__PURE__ */ import_react58.default.createElement("ul", { className: "list-unstyled" }, then.artifacts.map((artifact, ai) => /* @__PURE__ */ import_react58.default.createElement("li", { key: ai }, /* @__PURE__ */ import_react58.default.createElement(
|
|
32303
32303
|
"a",
|
|
32304
32304
|
{
|
|
32305
32305
|
href: `/testeranto/reports/${projectName}/${testName2.split(".").slice(0, -1).join(".")}/${runtime}/${artifact}`,
|