testeranto 0.90.0 → 0.94.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/dist/common/src/Node.js +5 -3
- package/dist/common/src/PM/main.js +102 -92
- package/dist/common/src/Project.js +5 -3
- package/dist/common/src/Puppeteer.js +1 -3
- package/dist/common/src/SubPackages/puppeteer.js +1 -1
- package/dist/common/src/SubPackages/react/jsx/index.js +14 -6
- package/dist/common/src/SubPackages/react/jsx/node.js +7 -2
- package/dist/common/src/SubPackages/react-dom/component/web.js +13 -39
- package/dist/common/src/SubPackages/react-test-renderer/component/interface.js +2 -10
- package/dist/common/src/Web.js +25 -21
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -2
- package/dist/common/src/lib/abstractBase.js +29 -184
- package/dist/common/src/lib/basebuilder.js +1 -11
- package/dist/common/src/lib/classBuilder.js +1 -1
- package/dist/common/src/lib/core.js +8 -28
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/Node.js +5 -3
- package/dist/module/src/PM/main.js +102 -92
- package/dist/module/src/Project.js +5 -3
- package/dist/module/src/Puppeteer.js +1 -3
- package/dist/module/src/SubPackages/puppeteer.js +1 -1
- package/dist/module/src/SubPackages/react/jsx/index.js +14 -6
- package/dist/module/src/SubPackages/react/jsx/node.js +7 -2
- package/dist/module/src/SubPackages/react-dom/component/web.js +13 -39
- package/dist/module/src/SubPackages/react-test-renderer/component/interface.js +2 -10
- package/dist/module/src/Web.js +25 -21
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -2
- package/dist/module/src/lib/abstractBase.js +29 -184
- package/dist/module/src/lib/basebuilder.js +1 -11
- package/dist/module/src/lib/classBuilder.js +1 -1
- package/dist/module/src/lib/core.js +8 -28
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/build-tests.mjs +4 -3
- package/dist/prebuild/run-tests.mjs +30 -66
- package/dist/types/src/Node.d.ts +4 -1
- package/dist/types/src/PM/main.d.ts +2 -1
- package/dist/types/src/SubPackages/react/jsx/node.d.ts +1 -1
- package/dist/types/src/SubPackages/react-test-renderer/component/interface.d.ts +1 -1
- package/dist/types/src/Web.d.ts +2 -2
- package/dist/types/src/lib/abstractBase.d.ts +6 -2
- package/dist/types/src/lib/core.d.ts +3 -3
- package/dist/types/src/lib/types.d.ts +5 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/src/Node.ts +6 -3
- package/src/PM/main.ts +121 -111
- package/src/Project.ts +6 -5
- package/src/Puppeteer.ts +1 -3
- package/src/SubPackages/puppeteer.ts +1 -1
- package/src/SubPackages/react/jsx/index.ts +15 -7
- package/src/SubPackages/react/jsx/node.ts +6 -5
- package/src/SubPackages/react-dom/component/web.ts +28 -51
- package/src/SubPackages/react-test-renderer/component/interface.ts +4 -11
- package/src/Web.ts +45 -23
- package/src/esbuildConfigs/inputFilesPlugin.ts +0 -3
- package/src/lib/abstractBase.ts +38 -188
- package/src/lib/basebuilder.ts +1 -12
- package/src/lib/classBuilder.ts +2 -1
- package/src/lib/core.ts +17 -29
- package/src/lib/types.ts +3 -1
|
@@ -37,14 +37,12 @@ import fs from "fs";
|
|
|
37
37
|
import path from "path";
|
|
38
38
|
var otherInputs = {};
|
|
39
39
|
var register = (entrypoint, sources) => {
|
|
40
|
-
console.log("register", entrypoint, sources);
|
|
41
40
|
if (!otherInputs[entrypoint]) {
|
|
42
41
|
otherInputs[entrypoint] = /* @__PURE__ */ new Set();
|
|
43
42
|
}
|
|
44
43
|
sources.forEach((s) => otherInputs[entrypoint].add(s));
|
|
45
44
|
};
|
|
46
45
|
function tree(meta, key) {
|
|
47
|
-
console.log("searching metafile for", key);
|
|
48
46
|
const outputKey = Object.keys(meta.outputs).find((k) => {
|
|
49
47
|
return meta.outputs[k].entryPoint === key;
|
|
50
48
|
});
|
|
@@ -389,9 +387,12 @@ var compile = () => {
|
|
|
389
387
|
logContent.push(...lines);
|
|
390
388
|
});
|
|
391
389
|
tsc.stderr.on("data", (data) => {
|
|
390
|
+
console.error(`stderr: ${data}`);
|
|
391
|
+
process.exit(-1);
|
|
392
392
|
});
|
|
393
393
|
tsc.on("close", (code) => {
|
|
394
394
|
parseTsErrors();
|
|
395
|
+
console.log("tsc done");
|
|
395
396
|
resolve(`tsc process exited with code ${code}`);
|
|
396
397
|
});
|
|
397
398
|
});
|
|
@@ -452,7 +453,6 @@ var ITProject = class {
|
|
|
452
453
|
2
|
|
453
454
|
)
|
|
454
455
|
);
|
|
455
|
-
compile();
|
|
456
456
|
Promise.resolve(
|
|
457
457
|
Promise.all(
|
|
458
458
|
[...this.getSecondaryEndpointsPoints("web")].map(
|
|
@@ -486,6 +486,7 @@ var ITProject = class {
|
|
|
486
486
|
});
|
|
487
487
|
});
|
|
488
488
|
Promise.all([
|
|
489
|
+
compile(),
|
|
489
490
|
esbuild.context(node_default(this.config, nodeEntryPoints)).then(async (nodeContext) => {
|
|
490
491
|
if (this.config.devMode) {
|
|
491
492
|
await nodeContext.watch().then((v) => {
|
|
@@ -97,14 +97,17 @@ var PM_Main = class extends PM {
|
|
|
97
97
|
process.exit(-1);
|
|
98
98
|
}
|
|
99
99
|
const builtfile = dest + ".mjs";
|
|
100
|
+
const webSideCares = [];
|
|
100
101
|
await Promise.all(
|
|
101
|
-
testConfig[3].map((sidecar) => {
|
|
102
|
+
testConfig[3].map(async (sidecar) => {
|
|
102
103
|
if (sidecar[1] === "web") {
|
|
103
|
-
|
|
104
|
+
const s = await this.launchWebSideCar(
|
|
104
105
|
sidecar[0],
|
|
105
106
|
destinationOfRuntime(sidecar[0], "web", this.configs),
|
|
106
107
|
sidecar
|
|
107
108
|
);
|
|
109
|
+
webSideCares.push(s);
|
|
110
|
+
return s;
|
|
108
111
|
}
|
|
109
112
|
if (sidecar[1] === "node") {
|
|
110
113
|
return this.launchNodeSideCar(
|
|
@@ -117,11 +120,13 @@ var PM_Main = class extends PM {
|
|
|
117
120
|
);
|
|
118
121
|
this.server[builtfile] = await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
|
|
119
122
|
return module.default.then((defaultModule) => {
|
|
120
|
-
defaultModule.receiveTestResourceConfig(argz).then(async (features) => {
|
|
123
|
+
defaultModule.receiveTestResourceConfig(argz).then(async ({ features, failed }) => {
|
|
121
124
|
this.receiveFeatures(features, destFolder);
|
|
125
|
+
console.log(`${src} completed with ${failed} errors`);
|
|
122
126
|
}).catch((e) => {
|
|
123
|
-
console.log(
|
|
127
|
+
console.log(`${src} errored with`, e);
|
|
124
128
|
}).finally(() => {
|
|
129
|
+
webSideCares.forEach((webSideCar) => webSideCar.close());
|
|
125
130
|
this.deregister(src);
|
|
126
131
|
});
|
|
127
132
|
});
|
|
@@ -136,12 +141,6 @@ var PM_Main = class extends PM {
|
|
|
136
141
|
const d = dest + ".mjs";
|
|
137
142
|
console.log("launchWebSideCar", src, dest, d);
|
|
138
143
|
const destFolder = dest.replace(".mjs", "");
|
|
139
|
-
const webArgz = JSON.stringify({
|
|
140
|
-
name: dest,
|
|
141
|
-
ports: [].toString(),
|
|
142
|
-
fs: destFolder,
|
|
143
|
-
browserWSEndpoint: this.browser.wsEndpoint()
|
|
144
|
-
});
|
|
145
144
|
const fileStreams2 = [];
|
|
146
145
|
const doneFileStream2 = [];
|
|
147
146
|
return new Promise((res, rej) => {
|
|
@@ -225,16 +224,6 @@ var PM_Main = class extends PM {
|
|
|
225
224
|
page.exposeFunction("end", async (uid) => {
|
|
226
225
|
return fileStreams2[uid].end();
|
|
227
226
|
});
|
|
228
|
-
page.exposeFunction("customclose", (p, testName) => {
|
|
229
|
-
fs.writeFileSync(
|
|
230
|
-
p + "/manifest.json",
|
|
231
|
-
JSON.stringify(Array.from(files[testName]))
|
|
232
|
-
);
|
|
233
|
-
delete files[testName];
|
|
234
|
-
Promise.all(screenshots[testName] || []).then(() => {
|
|
235
|
-
delete screenshots[testName];
|
|
236
|
-
});
|
|
237
|
-
});
|
|
238
227
|
return page;
|
|
239
228
|
}).then(async (page) => {
|
|
240
229
|
await page.goto(`file://${`${dest}.html`}`, {});
|
|
@@ -380,20 +369,7 @@ var PM_Main = class extends PM {
|
|
|
380
369
|
page.exposeFunction(
|
|
381
370
|
"writeFileSync",
|
|
382
371
|
(fp, contents, testName) => {
|
|
383
|
-
|
|
384
|
-
fs.mkdirSync(dir, {
|
|
385
|
-
recursive: true
|
|
386
|
-
});
|
|
387
|
-
const p = new Promise(async (res, rej) => {
|
|
388
|
-
fs.writeFileSync(fp, contents);
|
|
389
|
-
res(fp);
|
|
390
|
-
});
|
|
391
|
-
doneFileStream2.push(p);
|
|
392
|
-
if (!files[testName]) {
|
|
393
|
-
files[testName] = /* @__PURE__ */ new Set();
|
|
394
|
-
}
|
|
395
|
-
files[testName].add(fp);
|
|
396
|
-
return p;
|
|
372
|
+
return globalThis["writeFileSync"](fp, contents, testName);
|
|
397
373
|
}
|
|
398
374
|
);
|
|
399
375
|
page.exposeFunction("existsSync", (fp, contents) => {
|
|
@@ -435,16 +411,6 @@ var PM_Main = class extends PM {
|
|
|
435
411
|
page.exposeFunction("end", async (uid) => {
|
|
436
412
|
return fileStreams2[uid].end();
|
|
437
413
|
});
|
|
438
|
-
page.exposeFunction("customclose", (p, testName) => {
|
|
439
|
-
fs.writeFileSync(
|
|
440
|
-
p + "/manifest.json",
|
|
441
|
-
JSON.stringify(Array.from(files[testName]))
|
|
442
|
-
);
|
|
443
|
-
delete files[testName];
|
|
444
|
-
Promise.all(screenshots[testName] || []).then(() => {
|
|
445
|
-
delete screenshots[testName];
|
|
446
|
-
});
|
|
447
|
-
});
|
|
448
414
|
page.exposeFunction("page", () => {
|
|
449
415
|
return page.mainFrame()._id;
|
|
450
416
|
});
|
|
@@ -488,12 +454,21 @@ var PM_Main = class extends PM {
|
|
|
488
454
|
return page;
|
|
489
455
|
}).then(async (page) => {
|
|
490
456
|
const close = () => {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
457
|
+
if (!files[t]) {
|
|
458
|
+
files[t] = /* @__PURE__ */ new Set();
|
|
459
|
+
}
|
|
460
|
+
fs.writeFileSync(
|
|
461
|
+
dest + "/manifest.json",
|
|
462
|
+
JSON.stringify(Array.from(files[t]))
|
|
463
|
+
);
|
|
464
|
+
delete files[t];
|
|
465
|
+
Promise.all(screenshots[t] || []).then(() => {
|
|
466
|
+
delete screenshots[t];
|
|
467
|
+
page.close();
|
|
468
|
+
this.deregister(t);
|
|
469
|
+
stderrStream.close();
|
|
470
|
+
stdoutStream.close();
|
|
471
|
+
});
|
|
497
472
|
};
|
|
498
473
|
page.on("pageerror", (err) => {
|
|
499
474
|
console.debug(`Error from ${t}: [${err.name}] `);
|
|
@@ -515,11 +490,11 @@ var PM_Main = class extends PM {
|
|
|
515
490
|
stdoutStream.write(JSON.stringify(log.stackTrace()));
|
|
516
491
|
});
|
|
517
492
|
await page.goto(`file://${`${dest}.html`}`, {});
|
|
518
|
-
await page.evaluate(evaluation).then(async (features) => {
|
|
493
|
+
await page.evaluate(evaluation).then(async ({ failed, features }) => {
|
|
519
494
|
this.receiveFeatures(features, destFolder);
|
|
495
|
+
console.log(`${t} completed with ${failed} errors`);
|
|
520
496
|
}).catch((e) => {
|
|
521
|
-
console.log(
|
|
522
|
-
console.log(e);
|
|
497
|
+
console.log(`${t} errored with`, e);
|
|
523
498
|
}).finally(() => {
|
|
524
499
|
close();
|
|
525
500
|
});
|
|
@@ -527,7 +502,6 @@ var PM_Main = class extends PM {
|
|
|
527
502
|
});
|
|
528
503
|
};
|
|
529
504
|
this.receiveFeatures = (features, destFolder) => {
|
|
530
|
-
console.log("this.receiveFeatures", features);
|
|
531
505
|
features.reduce(async (mm, featureStringKey) => {
|
|
532
506
|
const accum = await mm;
|
|
533
507
|
const isUrl = isValidUrl(featureStringKey);
|
|
@@ -590,7 +564,7 @@ var PM_Main = class extends PM {
|
|
|
590
564
|
return false;
|
|
591
565
|
};
|
|
592
566
|
globalThis["writeFileSync"] = (filepath, contents, testName) => {
|
|
593
|
-
const dir = path2.dirname(filepath
|
|
567
|
+
const dir = path2.dirname(filepath);
|
|
594
568
|
fs.mkdirSync(dir, {
|
|
595
569
|
recursive: true
|
|
596
570
|
});
|
|
@@ -639,16 +613,6 @@ var PM_Main = class extends PM {
|
|
|
639
613
|
await sPromise;
|
|
640
614
|
return sPromise;
|
|
641
615
|
};
|
|
642
|
-
globalThis["customclose"] = (p, testName) => {
|
|
643
|
-
if (!files[testName]) {
|
|
644
|
-
files[testName] = /* @__PURE__ */ new Set();
|
|
645
|
-
}
|
|
646
|
-
fs.writeFileSync(
|
|
647
|
-
p + "/manifest.json",
|
|
648
|
-
JSON.stringify(Array.from(files[testName]))
|
|
649
|
-
);
|
|
650
|
-
delete files[testName];
|
|
651
|
-
};
|
|
652
616
|
}
|
|
653
617
|
$(selector) {
|
|
654
618
|
throw new Error("Method not implemented.");
|
|
@@ -813,7 +777,7 @@ var Puppeteer_default = async (partialConfig) => {
|
|
|
813
777
|
// process.env.CHROMIUM_PATH || "/opt/homebrew/bin/chromium",
|
|
814
778
|
"/opt/homebrew/bin/chromium"
|
|
815
779
|
),
|
|
816
|
-
headless:
|
|
780
|
+
headless: true,
|
|
817
781
|
dumpio: true,
|
|
818
782
|
// timeout: 0,
|
|
819
783
|
devtools: true,
|
package/dist/types/src/Node.d.ts
CHANGED
|
@@ -4,7 +4,10 @@ import type { IBaseTest, ITestImplementation, ITestSpecification } from "./Types
|
|
|
4
4
|
import { ITestInterface, INodeTestInterface } from "./lib/types.js";
|
|
5
5
|
export declare class NodeTesteranto<TestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> extends Testeranto<TestShape> {
|
|
6
6
|
constructor(input: TestShape["iinput"], testSpecification: ITestSpecification<TestShape>, testImplementation: ITestImplementation<TestShape>, testResourceRequirement: ITTestResourceRequest, testInterface: Partial<ITestInterface<TestShape>>);
|
|
7
|
-
receiveTestResourceConfig(partialTestResource: string): Promise<
|
|
7
|
+
receiveTestResourceConfig(partialTestResource: string): Promise<{
|
|
8
|
+
features: string[];
|
|
9
|
+
failed: number;
|
|
10
|
+
}>;
|
|
8
11
|
}
|
|
9
12
|
declare const _default: <ITestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>>(input: ITestShape["iinput"], testSpecification: ITestSpecification<ITestShape>, testImplementation: ITestImplementation<ITestShape, object>, testInterface: Partial<INodeTestInterface<ITestShape>>, testResourceRequirement?: ITTestResourceRequest) => Promise<Testeranto<ITestShape>>;
|
|
10
13
|
export default _default;
|
|
@@ -7,6 +7,7 @@ import { PassThrough } from "stream";
|
|
|
7
7
|
import { IBuiltConfig, ITestTypes } from "../lib/types";
|
|
8
8
|
import { PM } from "./index.js";
|
|
9
9
|
import { ITLog } from "../lib/index.js";
|
|
10
|
+
import { Page } from "puppeteer-core/lib/esm/puppeteer";
|
|
10
11
|
export declare class PM_Main extends PM {
|
|
11
12
|
browser: Browser;
|
|
12
13
|
shutdownMode: boolean;
|
|
@@ -42,7 +43,7 @@ export declare class PM_Main extends PM {
|
|
|
42
43
|
register: (src: string) => void;
|
|
43
44
|
deregister: (src: string) => void;
|
|
44
45
|
launchNode: (src: string, dest: string) => Promise<void>;
|
|
45
|
-
launchWebSideCar: (src: string, dest: string, testConfig: ITestTypes) => Promise<
|
|
46
|
+
launchWebSideCar: (src: string, dest: string, testConfig: ITestTypes) => Promise<Page>;
|
|
46
47
|
launchNodeSideCar: (src: string, dest: string, testConfig: ITestTypes) => Promise<void>;
|
|
47
48
|
launchWeb: (t: string, dest: string, sidecars: ITestTypes[]) => void;
|
|
48
49
|
receiveFeatures: (features: string[], destFolder: string) => void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { IPartialInterface } from "../../../Types";
|
|
2
2
|
import { ITestImpl, ITestSpec, IInput } from "./index.js";
|
|
3
|
-
declare const _default: <ITestShape extends any>(testImplementations: ITestImpl<ITestShape>, testSpecifications: ITestSpec<ITestShape>, testInput: IInput, testInterface
|
|
3
|
+
declare const _default: <ITestShape extends any>(testImplementations: ITestImpl<ITestShape>, testSpecifications: ITestSpec<ITestShape>, testInput: IInput, testInterface?: Partial<import("../../../lib/types.js").ITestInterface<ITestShape>>) => Promise<import("../../../lib/core.js").default<ITestShape>>;
|
|
4
4
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import renderer from "react-test-renderer";
|
|
2
2
|
import { ISelection, IStore } from ".";
|
|
3
3
|
export declare const testInterface: {
|
|
4
|
-
beforeEach: (CComponent: any, propsAndChildren: any) => Promise<renderer.ReactTestRenderer>;
|
|
4
|
+
beforeEach: (CComponent: any, propsAndChildren: () => any) => Promise<renderer.ReactTestRenderer>;
|
|
5
5
|
andWhen: (renderer: renderer.ReactTestRenderer, whenCB: any) => Promise<renderer.ReactTestRenderer>;
|
|
6
6
|
butThen: (s: IStore, thenCB: any, tr: any) => Promise<ISelection>;
|
|
7
7
|
afterEach: (store: IStore, ndx: any, artificer: any) => Promise<{}>;
|
package/dist/types/src/Web.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { IBaseTest, ITestImplementation, ITestSpecification } from "./Types";
|
|
2
2
|
import Testeranto from "./lib/core.js";
|
|
3
3
|
import { ITTestResourceRequest } from "./lib/index.js";
|
|
4
|
-
import { ITestInterface, IWebTestInterface } from "./lib/types";
|
|
4
|
+
import { IFinalResults, ITestInterface, IWebTestInterface } from "./lib/types";
|
|
5
5
|
export declare class WebTesteranto<TestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> extends Testeranto<TestShape> {
|
|
6
6
|
constructor(input: TestShape["iinput"], testSpecification: ITestSpecification<TestShape>, testImplementation: ITestImplementation<TestShape>, testResourceRequirement: ITTestResourceRequest, testInterface: Partial<ITestInterface<TestShape>>);
|
|
7
|
-
receiveTestResourceConfig(partialTestResource: any): Promise<
|
|
7
|
+
receiveTestResourceConfig(partialTestResource: any): Promise<IFinalResults>;
|
|
8
8
|
}
|
|
9
9
|
declare const _default: <ITestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>>(input: ITestShape["iinput"], testSpecification: ITestSpecification<ITestShape>, testImplementation: ITestImplementation<ITestShape, object>, testInterface: Partial<IWebTestInterface<ITestShape>>, testResourceRequirement?: ITTestResourceRequest) => Promise<Testeranto<ITestShape>>;
|
|
10
10
|
export default _default;
|
|
@@ -15,6 +15,7 @@ export declare abstract class BaseSuite<ITestShape extends IBaseTest<unknown, un
|
|
|
15
15
|
toObj(): {
|
|
16
16
|
name: string;
|
|
17
17
|
givens: {
|
|
18
|
+
key: string;
|
|
18
19
|
name: string;
|
|
19
20
|
whens: {
|
|
20
21
|
name: string;
|
|
@@ -46,9 +47,11 @@ export declare abstract class BaseGiven<ITestShape extends IBaseTest<unknown, un
|
|
|
46
47
|
recommendedFsPath: string;
|
|
47
48
|
givenCB: ITestShape["given"];
|
|
48
49
|
initialValues: any;
|
|
50
|
+
key: string;
|
|
49
51
|
constructor(name: string, features: string[], whens: BaseWhen<ITestShape>[], thens: BaseThen<ITestShape>[], givenCB: ITestShape["given"], initialValues: any);
|
|
50
|
-
beforeAll(store: ITestShape["istore"], artifactory:
|
|
52
|
+
beforeAll(store: ITestShape["istore"], initializer: any, artifactory: any, testResource: any, initialValues: any, pm: any): ITestShape["istore"];
|
|
51
53
|
toObj(): {
|
|
54
|
+
key: string;
|
|
52
55
|
name: string;
|
|
53
56
|
whens: {
|
|
54
57
|
name: string;
|
|
@@ -61,8 +64,9 @@ export declare abstract class BaseGiven<ITestShape extends IBaseTest<unknown, un
|
|
|
61
64
|
error: (string | Error | undefined)[] | null;
|
|
62
65
|
features: string[];
|
|
63
66
|
};
|
|
64
|
-
abstract givenThat(subject: ITestShape["isubject"], testResourceConfiguration: any, artifactory: ITestArtifactory, givenCB: ITestShape["given"], pm: PM): Promise<ITestShape["istore"]>;
|
|
67
|
+
abstract givenThat(subject: ITestShape["isubject"], testResourceConfiguration: any, artifactory: ITestArtifactory, givenCB: ITestShape["given"], initialValues: any, pm: PM): Promise<ITestShape["istore"]>;
|
|
65
68
|
afterEach(store: ITestShape["istore"], key: string, artifactory: ITestArtifactory, pm: PM): Promise<unknown>;
|
|
69
|
+
abstract uberCatcher(e: any): any;
|
|
66
70
|
give(subject: ITestShape["isubject"], key: string, testResourceConfiguration: ITTestResourceConfiguration, tester: (t: Awaited<ITestShape["then"]> | undefined) => boolean, artifactory: ITestArtifactory, tLog: ITLog, pm: PM, suiteNdx: number): Promise<ITestShape["istore"]>;
|
|
67
71
|
}
|
|
68
72
|
export declare abstract class BaseWhen<ITestShape extends IBaseTest> {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { IBaseTest, ITestSpecification, ITestImplementation } from "../Types.js";
|
|
2
|
-
import { ITestInterface } from "./types.js";
|
|
2
|
+
import { IFinalResults, ITestInterface } from "./types.js";
|
|
3
3
|
import { ITTestResourceRequest } from "./index.js";
|
|
4
4
|
import { ClassBuilder } from "./classBuilder.js";
|
|
5
5
|
export default abstract class Testeranto<ITestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> extends ClassBuilder<ITestShape> {
|
|
6
|
-
constructor(input: ITestShape["iinput"], testSpecification: ITestSpecification<ITestShape>, testImplementation: ITestImplementation<ITestShape>, testResourceRequirement: ITTestResourceRequest | undefined, testInterface: Partial<ITestInterface<ITestShape
|
|
7
|
-
abstract receiveTestResourceConfig(partialTestResource: string): Promise<
|
|
6
|
+
constructor(input: ITestShape["iinput"], testSpecification: ITestSpecification<ITestShape>, testImplementation: ITestImplementation<ITestShape>, testResourceRequirement: ITTestResourceRequest | undefined, testInterface: Partial<ITestInterface<ITestShape>>, uberCatcher: (cb: any) => void);
|
|
7
|
+
abstract receiveTestResourceConfig(partialTestResource: string): Promise<IFinalResults>;
|
|
8
8
|
}
|
|
@@ -3,6 +3,10 @@ import type { Plugin } from "esbuild";
|
|
|
3
3
|
import { IGivens, BaseCheck, BaseSuite, BaseGiven, BaseWhen, BaseThen } from "./abstractBase";
|
|
4
4
|
import { ITTestResourceConfiguration, ITestArtificer } from ".";
|
|
5
5
|
import { PM } from "../PM/index";
|
|
6
|
+
export declare type IFinalResults = {
|
|
7
|
+
features: string[];
|
|
8
|
+
failed: number;
|
|
9
|
+
};
|
|
6
10
|
export declare type IRunTime = `node` | `web`;
|
|
7
11
|
export declare type ITestTypes = [string, IRunTime, {
|
|
8
12
|
ports: number;
|
|
@@ -55,7 +59,7 @@ export declare type ITestInterface<ITestShape extends IBaseTest<unknown, unknown
|
|
|
55
59
|
afterAll: (store: ITestShape["istore"], artificer: ITestArtificer, pm: PM) => any;
|
|
56
60
|
afterEach: (store: ITestShape["istore"], key: string, artificer: ITestArtificer, pm: PM) => Promise<unknown>;
|
|
57
61
|
beforeAll: (input: ITestShape["iinput"], testResource: ITTestResourceConfiguration, artificer: ITestArtificer, pm: PM) => Promise<ITestShape["isubject"]>;
|
|
58
|
-
beforeEach: (subject: ITestShape["isubject"], initializer: (c?: any) => ITestShape["given"], testResource: ITTestResourceConfiguration, initialValues: any, pm: PM) => Promise<ITestShape["istore"]>;
|
|
62
|
+
beforeEach: (subject: ITestShape["isubject"], initializer: (c?: any) => ITestShape["given"], artificer: ITestArtificer, testResource: ITTestResourceConfiguration, initialValues: any, pm: PM) => Promise<ITestShape["istore"]>;
|
|
59
63
|
};
|
|
60
64
|
export declare type ISuiteKlasser<ITestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> = (name: string, index: number, givens: IGivens<ITestShape>, checks: BaseCheck<ITestShape>[]) => BaseSuite<ITestShape>;
|
|
61
65
|
export declare type IGivenKlasser<ITestShape extends IBaseTest<unknown, unknown, unknown, unknown, unknown, unknown, unknown, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>, Record<string, any>>> = (name: any, features: any, whens: any, thens: any, givenCB: any) => BaseGiven<ITestShape>;
|