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.
Files changed (60) hide show
  1. package/dist/common/src/Node.js +5 -3
  2. package/dist/common/src/PM/main.js +102 -92
  3. package/dist/common/src/Project.js +5 -3
  4. package/dist/common/src/Puppeteer.js +1 -3
  5. package/dist/common/src/SubPackages/puppeteer.js +1 -1
  6. package/dist/common/src/SubPackages/react/jsx/index.js +14 -6
  7. package/dist/common/src/SubPackages/react/jsx/node.js +7 -2
  8. package/dist/common/src/SubPackages/react-dom/component/web.js +13 -39
  9. package/dist/common/src/SubPackages/react-test-renderer/component/interface.js +2 -10
  10. package/dist/common/src/Web.js +25 -21
  11. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +0 -2
  12. package/dist/common/src/lib/abstractBase.js +29 -184
  13. package/dist/common/src/lib/basebuilder.js +1 -11
  14. package/dist/common/src/lib/classBuilder.js +1 -1
  15. package/dist/common/src/lib/core.js +8 -28
  16. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  17. package/dist/module/src/Node.js +5 -3
  18. package/dist/module/src/PM/main.js +102 -92
  19. package/dist/module/src/Project.js +5 -3
  20. package/dist/module/src/Puppeteer.js +1 -3
  21. package/dist/module/src/SubPackages/puppeteer.js +1 -1
  22. package/dist/module/src/SubPackages/react/jsx/index.js +14 -6
  23. package/dist/module/src/SubPackages/react/jsx/node.js +7 -2
  24. package/dist/module/src/SubPackages/react-dom/component/web.js +13 -39
  25. package/dist/module/src/SubPackages/react-test-renderer/component/interface.js +2 -10
  26. package/dist/module/src/Web.js +25 -21
  27. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +0 -2
  28. package/dist/module/src/lib/abstractBase.js +29 -184
  29. package/dist/module/src/lib/basebuilder.js +1 -11
  30. package/dist/module/src/lib/classBuilder.js +1 -1
  31. package/dist/module/src/lib/core.js +8 -28
  32. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  33. package/dist/prebuild/build-tests.mjs +4 -3
  34. package/dist/prebuild/run-tests.mjs +30 -66
  35. package/dist/types/src/Node.d.ts +4 -1
  36. package/dist/types/src/PM/main.d.ts +2 -1
  37. package/dist/types/src/SubPackages/react/jsx/node.d.ts +1 -1
  38. package/dist/types/src/SubPackages/react-test-renderer/component/interface.d.ts +1 -1
  39. package/dist/types/src/Web.d.ts +2 -2
  40. package/dist/types/src/lib/abstractBase.d.ts +6 -2
  41. package/dist/types/src/lib/core.d.ts +3 -3
  42. package/dist/types/src/lib/types.d.ts +5 -1
  43. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  44. package/package.json +13 -13
  45. package/src/Node.ts +6 -3
  46. package/src/PM/main.ts +121 -111
  47. package/src/Project.ts +6 -5
  48. package/src/Puppeteer.ts +1 -3
  49. package/src/SubPackages/puppeteer.ts +1 -1
  50. package/src/SubPackages/react/jsx/index.ts +15 -7
  51. package/src/SubPackages/react/jsx/node.ts +6 -5
  52. package/src/SubPackages/react-dom/component/web.ts +28 -51
  53. package/src/SubPackages/react-test-renderer/component/interface.ts +4 -11
  54. package/src/Web.ts +45 -23
  55. package/src/esbuildConfigs/inputFilesPlugin.ts +0 -3
  56. package/src/lib/abstractBase.ts +38 -188
  57. package/src/lib/basebuilder.ts +1 -12
  58. package/src/lib/classBuilder.ts +2 -1
  59. package/src/lib/core.ts +17 -29
  60. 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
- return this.launchWebSideCar(
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("catch", e);
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
- const dir = path2.dirname(fp);
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
- console.log("evaluation complete.", dest);
492
- page.off("pageerror");
493
- page.close();
494
- this.deregister(t);
495
- stderrStream.close();
496
- stdoutStream.close();
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("evaluation failed.", dest);
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.split("/").slice(0, -1).join("/"));
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: false,
780
+ headless: true,
817
781
  dumpio: true,
818
782
  // timeout: 0,
819
783
  devtools: true,
@@ -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<string[]>;
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<unknown>;
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: Partial<import("../../../lib/types.js").ITestInterface<ITestShape>>) => Promise<import("../../../lib/core.js").default<ITestShape>>;
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<{}>;
@@ -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<string[]>;
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: ITestArtifactory): ITestShape["istore"];
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<string[]>;
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>;