testeranto 0.81.3 → 0.84.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 (71) hide show
  1. package/dist/common/src/Node.js +4 -2
  2. package/dist/common/src/PM/main.js +188 -61
  3. package/dist/common/src/PM/node.js +32 -7
  4. package/dist/common/src/PM/web.js +28 -54
  5. package/dist/common/src/Project.js +0 -3
  6. package/dist/common/src/Puppeteer.js +9 -51
  7. package/dist/common/src/SubPackages/react-dom/jsx/web.js +11 -11
  8. package/dist/common/src/Web.js +7 -1
  9. package/dist/common/src/esbuildConfigs/featuresPlugin.js +39 -0
  10. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +62 -64
  11. package/dist/common/src/esbuildConfigs/node.js +10 -3
  12. package/dist/common/src/esbuildConfigs/web.js +6 -2
  13. package/dist/common/src/lib/abstractBase.js +348 -337
  14. package/dist/common/src/lib/basebuilder.js +9 -4
  15. package/dist/common/src/lib/core.js +1 -1
  16. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  17. package/dist/module/src/Node.js +3 -3
  18. package/dist/module/src/PM/main.js +188 -61
  19. package/dist/module/src/PM/node.js +32 -7
  20. package/dist/module/src/PM/web.js +28 -51
  21. package/dist/module/src/Project.js +0 -3
  22. package/dist/module/src/Puppeteer.js +9 -51
  23. package/dist/module/src/SubPackages/react-dom/jsx/web.js +10 -10
  24. package/dist/module/src/Web.js +6 -2
  25. package/dist/module/src/esbuildConfigs/featuresPlugin.js +34 -0
  26. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +62 -64
  27. package/dist/module/src/esbuildConfigs/node.js +10 -3
  28. package/dist/module/src/esbuildConfigs/web.js +6 -2
  29. package/dist/module/src/lib/abstractBase.js +348 -337
  30. package/dist/module/src/lib/basebuilder.js +9 -4
  31. package/dist/module/src/lib/core.js +1 -1
  32. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  33. package/dist/prebuild/Puppeteer.mjs +82033 -0
  34. package/dist/types/src/Node.d.ts +5 -1
  35. package/dist/types/src/PM/index.d.ts +10 -4
  36. package/dist/types/src/PM/main.d.ts +21 -9
  37. package/dist/types/src/PM/node.d.ts +11 -3
  38. package/dist/types/src/PM/web.d.ts +11 -2
  39. package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +1 -0
  40. package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +1 -0
  41. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +1 -0
  42. package/dist/types/src/Types.d.ts +2 -2
  43. package/dist/types/src/Web.d.ts +5 -1
  44. package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +5 -0
  45. package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +4 -2
  46. package/dist/types/src/lib/abstractBase.d.ts +5 -4
  47. package/dist/types/src/lib/core.d.ts +1 -1
  48. package/dist/types/src/lib/index.d.ts +1 -0
  49. package/dist/types/src/lib/types.d.ts +7 -5
  50. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  51. package/package.json +18 -45
  52. package/pupBuild.js +18 -0
  53. package/src/Node.ts +3 -5
  54. package/src/PM/index.ts +12 -3
  55. package/src/PM/main.ts +306 -140
  56. package/src/PM/node.ts +40 -7
  57. package/src/PM/web.ts +108 -58
  58. package/src/Project.ts +0 -8
  59. package/src/Puppeteer.ts +11 -57
  60. package/src/SubPackages/react-dom/jsx/web.ts +15 -10
  61. package/src/Types.ts +5 -2
  62. package/src/Web.ts +6 -2
  63. package/src/esbuildConfigs/featuresPlugin.ts +43 -0
  64. package/src/esbuildConfigs/inputFilesPlugin.ts +97 -90
  65. package/src/esbuildConfigs/node.ts +18 -3
  66. package/src/esbuildConfigs/web.ts +14 -2
  67. package/src/lib/abstractBase.ts +388 -366
  68. package/src/lib/basebuilder.ts +9 -9
  69. package/src/lib/core.ts +4 -2
  70. package/src/lib/index.ts +1 -0
  71. package/src/lib/types.ts +14 -6
@@ -57,23 +57,28 @@ export abstract class BaseSuite<
57
57
  this.fails = [];
58
58
  }
59
59
 
60
- public toObj() {
61
- const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
60
+ public features() {
62
61
  const features = Object.keys(this.givens)
63
62
  .map((k) => this.givens[k].features)
64
63
  .flat()
65
64
  .filter((value, index, array) => {
66
65
  return array.indexOf(value) === index;
67
- })
68
- .reduce((mm, lm) => {
69
- mm[lm] = lm;
70
- return mm;
71
- }, {});
66
+ });
67
+ // .reduce((mm, lm) => {
68
+ // mm[lm] = lm;
69
+ // return mm;
70
+ // }, {});
71
+ return features || [];
72
+ }
73
+
74
+ public toObj() {
75
+ const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
76
+
72
77
  return {
73
78
  name: this.name,
74
79
  givens,
75
80
  fails: this.fails,
76
- features,
81
+ features: this.features(),
77
82
  };
78
83
  }
79
84
 
@@ -115,64 +120,73 @@ export abstract class BaseSuite<
115
120
  for (const [gNdx, g] of Object.entries(this.givens)) {
116
121
  const beforeAllProxy = new Proxy(pm, {
117
122
  get(target, prop, receiver) {
123
+ if (prop === "customScreenShot") {
124
+ return (opts) =>
125
+ target.customScreenShot({
126
+ ...opts,
127
+ // path: `${filepath}/${opts.path}`,
128
+ path: `suite-${sNdx}/beforeAll/${opts.path}`,
129
+ });
130
+ }
131
+
118
132
  if (prop === "writeFileSync") {
119
133
  return (fp, contents) =>
120
134
  target[prop](`suite-${sNdx}/beforeAll/${fp}`, contents);
121
135
  }
122
136
 
123
- if (prop === "browser") {
124
- return new Proxy(target[prop], {
125
- get(bTarget, bProp, bReceiver) {
126
- if (bProp === "pages") {
127
- return async () => {
128
- return bTarget.pages().then((pages) => {
129
- return pages.map((page) => {
130
- return new Proxy(page, {
131
- get(pTarget, pProp, pReciever) {
132
- if (pProp === "screenshot") {
133
- return async (x) => {
134
- return pm.customScreenShot(
135
- {
136
- ...x,
137
- path:
138
- `${testResourceConfiguration.fs}/suite-${sNdx}/beforeAll` +
139
- "/" +
140
- x.path,
141
- },
142
- page
143
- );
144
- // return await window["custom-screenshot"]({
145
- // ...x,
146
- // path:
147
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
148
- // "/" +
149
- // x.path,
150
- // });
151
- };
152
- } else if (pProp === "mainFrame") {
153
- return () => pTarget[pProp]();
154
- } else if (pProp === "close") {
155
- return () => pTarget[pProp]();
156
- }
157
-
158
- // else if (pProp === "mainFrame") {
159
- // return () => target[pProp](...arguments);
160
- // }
161
- else {
162
- return Reflect.get(...arguments);
163
- }
164
- },
165
- });
166
- });
167
- });
168
- // return (await target.pages()).map((page) => {
169
- // return new Proxy(page, handler2);
170
- // });
171
- };
172
- }
173
- },
174
- });
175
- }
137
+ // if (prop === "browser") {
138
+ // return new Proxy(target[prop], {
139
+ // get(bTarget, bProp, bReceiver) {
140
+ // if (bProp === "pages") {
141
+ // return async () => {
142
+ // return bTarget.pages().then((pages) => {
143
+ // return pages.map((page) => {
144
+ // return new Proxy(page, {
145
+ // get(pTarget, pProp, pReciever) {
146
+ // if (pProp === "screenshot") {
147
+ // return async (x) => {
148
+ // return pm.customScreenShot(
149
+ // {
150
+ // ...x,
151
+ // path:
152
+ // `${testResourceConfiguration.fs}/suite-${sNdx}/beforeAll` +
153
+ // "/" +
154
+ // x.path,
155
+ // },
156
+ // page
157
+ // );
158
+ // // return await window["custom-screenshot"]({
159
+ // // ...x,
160
+ // // path:
161
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
162
+ // // "/" +
163
+ // // x.path,
164
+ // // });
165
+ // };
166
+ // } else if (pProp === "mainFrame") {
167
+ // return () => pTarget[pProp]();
168
+ // } else if (pProp === "close") {
169
+ // return () => pTarget[pProp]();
170
+ // }
171
+
172
+ // // else if (pProp === "mainFrame") {
173
+ // // return () => target[pProp](...arguments);
174
+ // // }
175
+ // else {
176
+ // return Reflect.get(...arguments);
177
+ // }
178
+ // },
179
+ // });
180
+ // });
181
+ // });
182
+ // // return (await target.pages()).map((page) => {
183
+ // // return new Proxy(page, handler2);
184
+ // // });
185
+ // };
186
+ // }
187
+ // },
188
+ // });
189
+ // }
176
190
 
177
191
  return Reflect.get(...arguments);
178
192
  },
@@ -204,71 +218,75 @@ export abstract class BaseSuite<
204
218
  }
205
219
  }
206
220
 
207
- const afterAllProxy = new Proxy(pm, {
208
- get(target, prop, receiver) {
209
- if (prop === "writeFileSync") {
210
- return (fp, contents) =>
211
- target[prop](`suite-${sNdx}/afterAll/${fp}`, contents);
212
- }
213
-
214
- if (prop === "browser") {
215
- return new Proxy(target[prop], {
216
- get(bTarget, bProp, bReceiver) {
217
- if (bProp === "pages") {
218
- return async () => {
219
- return bTarget.pages().then((pages) => {
220
- return pages.map((page) => {
221
- return new Proxy(page, {
222
- get(pTarget, pProp, pReciever) {
223
- if (pProp === "screenshot") {
224
- return async (x) => {
225
- return pm.customScreenShot({
226
- ...x,
227
- path:
228
- `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
229
- "/" +
230
- x.path,
231
- });
232
- // return await window["custom-screenshot"]({
233
- // ...x,
234
- // path:
235
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
236
- // "/" +
237
- // x.path,
238
- // });
239
- };
240
- } else if (pProp === "mainFrame") {
241
- return () => pTarget[pProp]();
242
- } else if (pProp === "close") {
243
- return () => pTarget[pProp]();
244
- }
245
-
246
- // else if (pProp === "mainFrame") {
247
- // return () => target[pProp](...arguments);
248
- // }
249
- else {
250
- return Reflect.get(...arguments);
251
- }
252
- },
253
- });
254
- });
255
- });
256
- // return (await target.pages()).map((page) => {
257
- // return new Proxy(page, handler2);
258
- // });
259
- };
260
- }
261
- },
262
- });
263
- }
221
+ // const afterAllProxy = new Proxy(pm, {
222
+ // get(target, prop, receiver) {
223
+ // if (prop === "writeFileSync") {
224
+ // return (fp, contents) =>
225
+ // target[prop](`suite-${sNdx}/afterAll/${fp}`, contents);
226
+ // }
227
+
228
+ // if (prop === "browser") {
229
+ // return new Proxy(target[prop], {
230
+ // get(bTarget, bProp, bReceiver) {
231
+ // if (bProp === "pages") {
232
+ // return async () => {
233
+ // return bTarget.pages().then((pages) => {
234
+ // return pages.map((page) => {
235
+ // return new Proxy(page, {
236
+ // get(pTarget, pProp, pReciever) {
237
+ // if (pProp === "screenshot") {
238
+ // return async (x) => {
239
+ // return pm.customScreenShot({
240
+ // ...x,
241
+ // path:
242
+ // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
243
+ // "/" +
244
+ // x.path,
245
+ // });
246
+ // // return await window["custom-screenshot"]({
247
+ // // ...x,
248
+ // // path:
249
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
250
+ // // "/" +
251
+ // // x.path,
252
+ // // });
253
+ // };
254
+ // } else if (pProp === "mainFrame") {
255
+ // return () => pTarget[pProp]();
256
+ // } else if (pProp === "close") {
257
+ // return () => pTarget[pProp]();
258
+ // }
259
+
260
+ // // else if (pProp === "mainFrame") {
261
+ // // return () => target[pProp](...arguments);
262
+ // // }
263
+ // else {
264
+ // return Reflect.get(...arguments);
265
+ // }
266
+ // },
267
+ // });
268
+ // });
269
+ // });
270
+ // // return (await target.pages()).map((page) => {
271
+ // // return new Proxy(page, handler2);
272
+ // // });
273
+ // };
274
+ // }
275
+ // },
276
+ // });
277
+ // }
278
+
279
+ // return Reflect.get(...arguments);
280
+ // },
281
+ // });
264
282
 
265
- return Reflect.get(...arguments);
266
- },
267
- });
268
-
269
- // pm.browser
270
283
  try {
271
- this.afterAll(this.store, artifactory, afterAllProxy);
284
+ this.afterAll(
285
+ this.store,
286
+ artifactory,
287
+ // afterAllProxy
288
+ pm
289
+ );
272
290
  } catch (e) {
273
291
  console.error(e);
274
292
  // this.fails.push(this);
@@ -383,7 +401,7 @@ export abstract class BaseGiven<
383
401
  async give(
384
402
  subject: ITestShape["isubject"],
385
403
  key: string,
386
- testResourceConfiguration,
404
+ testResourceConfiguration: ITTestResourceConfiguration,
387
405
  tester: (t: Awaited<ITestShape["then"]> | undefined) => boolean,
388
406
  artifactory: ITestArtifactory,
389
407
  tLog: ITLog,
@@ -407,6 +425,15 @@ export abstract class BaseGiven<
407
425
  );
408
426
  }
409
427
 
428
+ if (prop === "customScreenShot") {
429
+ return (opts) =>
430
+ target.customScreenShot({
431
+ ...opts,
432
+ // path: `${filepath}/${opts.path}`,
433
+ path: `suite-${suiteNdx}/given-${key}/when/beforeEach/${opts.path}`,
434
+ });
435
+ }
436
+
410
437
  return Reflect.get(...arguments);
411
438
  },
412
439
  });
@@ -449,106 +476,102 @@ export abstract class BaseGiven<
449
476
  // throw e;
450
477
  } finally {
451
478
  try {
452
- // const afterEachProxy = new Proxy(pm, {
453
- // get(target, prop, receiver) {
454
- // if (prop === "writeFileSync") {
455
- // console.log("afterEachProxy", arguments, target[prop]);
456
- // return (fp, contents) =>
457
- // // target[prop](`${key}/andWhen/${fp}`, contents);
458
- // target[prop](`${key}/afterEach/${fp}`, contents);
459
- // }
460
-
461
- // return Reflect.get(...arguments);
462
- // },
463
- // });
464
-
465
- // await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
466
-
467
- // await this.afterEach(this.store, key, givenArtifactory, pm);
468
-
469
479
  const afterEachProxy = new Proxy(pm, {
470
480
  get(target, prop, receiver) {
481
+ if (prop === "customScreenShot") {
482
+ return (opts) =>
483
+ target.customScreenShot({
484
+ ...opts,
485
+ path: `suite-${suiteNdx}/given-${key}/afterEach/${opts.path}`,
486
+ });
487
+ }
488
+
471
489
  if (prop === "writeFileSync") {
472
490
  return (fp, contents) =>
473
491
  target[prop](
474
- `suite-${suiteNdx}/given-${key}/afterAll/${fp}`,
492
+ `suite-${suiteNdx}/given-${key}/afterEach/${fp}`,
475
493
  contents
476
494
  );
477
495
  }
478
496
 
479
- if (prop === "browser") {
480
- return new Proxy(target[prop], {
481
- get(bTarget, bProp, bReceiver) {
482
- if (bProp === "pages") {
483
- return async () => {
484
- return bTarget.pages().then((pages) => {
485
- return pages.map((page) => {
486
- return new Proxy(page, {
487
- get(pTarget, pProp, pReciever) {
488
- if (pProp === "screenshot") {
489
- return async (x) => {
490
- // console.log(
491
- // "custom-screenshot-MARK-afterEachProxy",
492
- // window["custom-screenshot"].toString()
493
- // );
494
-
495
- return pm.customScreenShot(
496
- {
497
- ...x,
498
- path:
499
- `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
500
- "/" +
501
- x.path,
502
- },
503
- page
504
- );
505
-
506
- // return await pTarget[pProp]({
507
- // ...x,
508
- // path:
509
- // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
510
- // "/" +
511
- // x.path,
512
- // });
513
- };
514
- } else if (pProp === "mainFrame") {
515
- return () => pTarget[pProp]();
516
- // return target[pProp];
517
- // return Reflect.get(...arguments);
518
- } else if (pProp === "exposeFunction") {
519
- // return Reflect.get(target, prop, receiver);
520
- return (...a) => pTarget[pProp](...a);
521
- // return target[pProp];
522
- } else if (pProp === "removeExposedFunction") {
523
- // return Reflect.get(target, prop, receiver);
524
- return pTarget[pProp].bind(pTarget);
525
- // return target[pProp];
526
- }
527
- // else if (pProp === "#frameManager") {
528
- // return () => target[pProp](...arguments);
529
- // }
530
- else {
531
- return Reflect.get(...arguments);
532
- }
533
- },
534
- });
535
- });
536
- });
537
- // return (await target.pages()).map((page) => {
538
- // return new Proxy(page, handler2);
539
- // });
540
- };
541
- }
542
- },
543
- });
544
- }
497
+ // if (prop === "browser") {
498
+ // return new Proxy(target[prop], {
499
+ // get(bTarget, bProp, bReceiver) {
500
+ // if (bProp === "pages") {
501
+ // return async () => {
502
+ // return bTarget.pages().then((pages) => {
503
+ // return pages.map((page) => {
504
+ // return new Proxy(page, {
505
+ // get(pTarget, pProp, pReciever) {
506
+ // if (pProp === "screenshot") {
507
+ // return async (x) => {
508
+ // // console.log(
509
+ // // "custom-screenshot-MARK-afterEachProxy",
510
+ // // window["custom-screenshot"].toString()
511
+ // // );
512
+
513
+ // return pm.customScreenShot(
514
+ // {
515
+ // ...x,
516
+ // path:
517
+ // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
518
+ // "/" +
519
+ // x.path,
520
+ // },
521
+ // page
522
+ // );
523
+
524
+ // // return await pTarget[pProp]({
525
+ // // ...x,
526
+ // // path:
527
+ // // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
528
+ // // "/" +
529
+ // // x.path,
530
+ // // });
531
+ // };
532
+ // } else if (pProp === "mainFrame") {
533
+ // return () => pTarget[pProp]();
534
+ // // return target[pProp];
535
+ // // return Reflect.get(...arguments);
536
+ // } else if (pProp === "exposeFunction") {
537
+ // // return Reflect.get(target, prop, receiver);
538
+ // return (...a) => pTarget[pProp](...a);
539
+ // // return target[pProp];
540
+ // } else if (pProp === "removeExposedFunction") {
541
+ // // return Reflect.get(target, prop, receiver);
542
+ // return pTarget[pProp].bind(pTarget);
543
+ // // return target[pProp];
544
+ // }
545
+ // // else if (pProp === "#frameManager") {
546
+ // // return () => target[pProp](...arguments);
547
+ // // }
548
+ // else {
549
+ // return Reflect.get(...arguments);
550
+ // }
551
+ // },
552
+ // });
553
+ // });
554
+ // });
555
+ // // return (await target.pages()).map((page) => {
556
+ // // return new Proxy(page, handler2);
557
+ // // });
558
+ // };
559
+ // }
560
+ // },
561
+ // });
562
+ // }
545
563
 
546
564
  return Reflect.get(...arguments);
547
565
  },
548
566
  });
549
567
 
550
- // console.log("mark5", this.store, key);
551
- await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
568
+ await this.afterEach(
569
+ this.store,
570
+ key,
571
+ givenArtifactory,
572
+ // pm
573
+ afterEachProxy
574
+ );
552
575
  } catch (e) {
553
576
  console.error("afterEach failed! no error will be recorded!", e);
554
577
  }
@@ -575,7 +598,7 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
575
598
  whenCB: (x: ITestShape["iselection"]) => ITestShape["then"],
576
599
  testResource,
577
600
  pm: PM
578
- );
601
+ ): Promise<any>;
579
602
 
580
603
  toObj() {
581
604
  return {
@@ -589,106 +612,106 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
589
612
  testResourceConfiguration,
590
613
  tLog: ITLog,
591
614
  pm: PM,
592
- key: string
615
+ filepath: string
593
616
  ) {
594
617
  tLog(" When:", this.name);
595
618
 
596
619
  const name = this.name;
597
620
  const andWhenProxy = new Proxy(pm, {
598
- // set(obj, prop, value) {
599
- // return Reflect.set(...arguments);
600
- // // if (prop === "eyeCount" && value % 2 !== 0) {
601
- // // console.log("Monsters must have an even number of eyes");
602
- // // } else {
603
- // // return Reflect.set(...arguments);
604
- // // }
605
- // },
606
-
607
621
  get(target, prop, receiver) {
622
+ if (prop === "customScreenShot") {
623
+ return (opts) =>
624
+ target.customScreenShot({
625
+ ...opts,
626
+ path: `${filepath}/${opts.path}`,
627
+ });
628
+ }
608
629
  if (prop === "writeFileSync") {
609
630
  return (fp, contents) =>
610
- // target[prop](`${key}/andWhen/${fp}`, contents);
611
- target[prop](`${key}/andWhen/${fp}`, contents);
631
+ target[prop](`${filepath}/andWhen/${fp}`, contents);
612
632
  }
613
633
 
614
634
  /////////////////////
615
635
 
616
- if (prop === "browser") {
617
- return new Proxy(target[prop], {
618
- get(bTarget, bProp, bReceiver) {
619
- if (bProp === "pages") {
620
- return async () => {
621
- return bTarget.pages().then((pages) => {
622
- return pages.map((page) => {
623
- return new Proxy(page, {
624
- get(pTarget, pProp, pReciever) {
625
- // console.log("mark get", pTarget, pProp, pReciever);
626
- if (pProp === "screenshot") {
627
- return async (x) => {
628
- return pm.customScreenShot(
629
- {
630
- ...x,
631
- path:
632
- `${testResourceConfiguration.fs}/${key}/afterEach` +
633
- "/" +
634
- x.path,
635
- },
636
- page
637
- );
638
- };
639
- } else if (pProp === "mainFrame") {
640
- return () => pTarget[pProp]();
641
- // return target[pProp];
642
- // return Reflect.get(...arguments);
643
- } else if (pProp === "exposeFunction") {
644
- // return Reflect.get(target, prop, receiver);
645
- return pTarget[pProp].bind(pTarget);
646
- // return target[pProp];
647
- } else if (pProp === "removeExposedFunction") {
648
- // return Reflect.get(target, prop, receiver);
649
- return pTarget[pProp].bind(pTarget);
650
- // return target[pProp];
651
- } else if (pProp === "click") {
652
- // console.log("mark12", arguments);
653
- // return Reflect.get(target, prop, receiver);
654
- // return pTarget[pProp].bind(pTarget);
655
- // return target[pProp];
656
- return (selector, options) => {
657
- // console.log("mark13", selector, options);
658
- // debugger;
659
- pTarget[pProp](selector, options);
660
- };
661
- } else if (pProp === "$") {
662
- return Reflect.get(...arguments);
663
- // return Reflect.get(target, prop, receiver);
664
- // return pTarget[pProp].bind(pTarget);
665
- // return target[pProp];
666
- // return pTarget[pProp].bind(pTarget);
667
-
668
- // return async (s) => {
669
- // console.log("mark17", s);
670
- // console.log("pTarget", pTarget);
671
- // console.log("pProp", pProp);
672
- // console.log("pReciever", pReciever);
673
- // // return "XXX";
674
- // // debugger;
675
- // return await pTarget[pProp](s);
676
- // };
677
- } else {
678
- return Reflect.get(...arguments);
679
- }
680
- },
681
- });
682
- });
683
- });
684
- // return (await target.pages()).map((page) => {
685
- // return new Proxy(page, handler2);
686
- // });
687
- };
688
- }
689
- },
690
- });
691
- }
636
+ // if (prop === "browser") {
637
+ // return new Proxy(target[prop], {
638
+ // get(bTarget, bProp, bReceiver) {
639
+ // if (bProp === "pages") {
640
+ // return async () => {
641
+ // return bTarget.pages().then((pages) => {
642
+ // return pages.map((page) => {
643
+ // return new Proxy(page, {
644
+ // get(pTarget, pProp, pReciever) {
645
+ // // console.log("mark get", pTarget, pProp, pReciever);
646
+ // if (pProp === "screenshot") {
647
+ // return async (x) => {
648
+ // return pm.customScreenShot(
649
+ // {
650
+ // ...x,
651
+ // path:
652
+ // `${testResourceConfiguration.fs}/${key}/afterEach` +
653
+ // "/" +
654
+ // x.path,
655
+ // },
656
+ // page
657
+ // );
658
+ // };
659
+ // } else if (pProp === "mainFrame") {
660
+ // return () => pTarget[pProp]();
661
+ // // return target[pProp];
662
+ // // return Reflect.get(...arguments);
663
+ // } else if (pProp === "exposeFunction") {
664
+ // // return Reflect.get(target, prop, receiver);
665
+ // return pTarget[pProp].bind(pTarget);
666
+ // // return target[pProp];
667
+ // } else if (pProp === "removeExposedFunction") {
668
+ // // return Reflect.get(target, prop, receiver);
669
+ // return pTarget[pProp].bind(pTarget);
670
+ // // return target[pProp];
671
+ // } else if (pProp === "click") {
672
+ // // console.log("mark12", arguments);
673
+ // // return Reflect.get(target, prop, receiver);
674
+ // // return pTarget[pProp].bind(pTarget);
675
+ // // return target[pProp];
676
+ // return (selector, options) => {
677
+ // pTarget[pProp](selector, options);
678
+ // };
679
+ // } else if (pProp === "$eval") {
680
+ // // return pTarget[pProp].bind(pTarget);
681
+ // return (selector, options) => {
682
+ // pTarget[pProp](selector, options);
683
+ // };
684
+ // } else if (pProp === "$") {
685
+ // return Reflect.get(...arguments);
686
+ // // return Reflect.get(target, prop, receiver);
687
+ // // return pTarget[pProp].bind(pTarget);
688
+ // // return target[pProp];
689
+ // // return pTarget[pProp].bind(pTarget);
690
+
691
+ // // return async (s) => {
692
+ // // console.log("mark17", s);
693
+ // // console.log("pTarget", pTarget);
694
+ // // console.log("pProp", pProp);
695
+ // // console.log("pReciever", pReciever);
696
+ // // // return "XXX";
697
+ // // // debugger;
698
+ // // return await pTarget[pProp](s);
699
+ // // };
700
+ // } else {
701
+ // return Reflect.get(...arguments);
702
+ // }
703
+ // },
704
+ // });
705
+ // });
706
+ // });
707
+ // // return (await target.pages()).map((page) => {
708
+ // // return new Proxy(page, handler2);
709
+ // // });
710
+ // };
711
+ // }
712
+ // },
713
+ // });
714
+ // }
692
715
 
693
716
  ///////////////////////
694
717
 
@@ -696,7 +719,7 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
696
719
  },
697
720
  });
698
721
 
699
- return this.andWhen(
722
+ return await this.andWhen(
700
723
  store,
701
724
  this.whenCB,
702
725
  testResourceConfiguration,
@@ -773,87 +796,86 @@ export abstract class BaseThen<
773
796
  try {
774
797
  const butThenProxy = new Proxy(pm, {
775
798
  get(target, prop, receiver) {
799
+ if (prop === "customScreenShot") {
800
+ return (opts) =>
801
+ target.customScreenShot({
802
+ ...opts,
803
+ path: `${filepath}/${opts.path}`,
804
+ });
805
+ }
806
+
776
807
  if (prop === "writeFileSync") {
777
808
  return (fp, contents) =>
778
809
  target[prop](`${filepath}/${fp}`, contents);
779
810
  }
780
811
 
781
- if (prop === "browser") {
782
- return new Proxy(target[prop], {
783
- get(bTarget, bProp, bReceiver) {
784
- if (bProp === "pages") {
785
- return async () => {
786
- return bTarget.pages().then((pages) => {
787
- return pages.map((page) => {
788
- return new Proxy(page, {
789
- get(pTarget, pProp, pReciever) {
790
- if (pProp === "screenshot") {
791
- return async (x) => {
792
- return pm.customScreenShot(
793
- {
794
- ...x,
795
- path:
796
- `${testResourceConfiguration.fs}/${filepath}/butThen` +
797
- "/" +
798
- x.path,
799
- },
800
- page
801
- );
802
- // return await window["custom-screenshot"]({
803
- // ...x,
804
- // path:
805
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
806
- // "/" +
807
- // x.path,
808
- // });
809
- };
810
- } else if (pProp === "close") {
811
- return () => pTarget[pProp]();
812
- } else if (pProp === "mainFrame") {
813
- return () => pTarget[pProp]();
814
- } else if (pProp === "exposeFunction") {
815
- // return Reflect.get(target, prop, receiver);
816
- return (...a) => pTarget[pProp](...a);
817
- // return target[pProp];
818
- } else if (pProp === "removeExposedFunction") {
819
- // return Reflect.get(target, prop, receiver);
820
- return pTarget[pProp].bind(pTarget);
821
- // return target[pProp];
822
- } else {
823
- return Reflect.get(...arguments);
824
- }
825
- },
826
- });
827
- });
828
- });
829
- // return (await target.pages()).map((page) => {
830
- // return new Proxy(page, handler2);
831
- // });
832
- };
833
- }
834
- },
835
- });
836
- }
812
+ // if (prop === "browser") {
813
+ // return new Proxy(target[prop], {
814
+ // get(bTarget, bProp, bReceiver) {
815
+ // if (bProp === "pages") {
816
+ // return async () => {
817
+ // return bTarget.pages().then((pages) => {
818
+ // return pages.map((page) => {
819
+ // return new Proxy(page, {
820
+ // get(pTarget, pProp, pReciever) {
821
+ // if (pProp === "screenshot") {
822
+ // return async (x) => {
823
+ // return pm.customScreenShot(
824
+ // {
825
+ // ...x,
826
+ // path:
827
+ // `${testResourceConfiguration.fs}/${filepath}/butThen` +
828
+ // "/" +
829
+ // x.path,
830
+ // },
831
+ // page
832
+ // );
833
+ // // return await window["custom-screenshot"]({
834
+ // // ...x,
835
+ // // path:
836
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
837
+ // // "/" +
838
+ // // x.path,
839
+ // // });
840
+ // };
841
+ // } else if (pProp === "close") {
842
+ // return () => pTarget[pProp]();
843
+ // } else if (pProp === "mainFrame") {
844
+ // return () => pTarget[pProp]();
845
+ // } else if (pProp === "exposeFunction") {
846
+ // // return Reflect.get(target, prop, receiver);
847
+ // return (...a) => pTarget[pProp](...a);
848
+ // // return target[pProp];
849
+ // } else if (pProp === "removeExposedFunction") {
850
+ // // return Reflect.get(target, prop, receiver);
851
+ // return pTarget[pProp].bind(pTarget);
852
+ // // return target[pProp];
853
+ // } else {
854
+ // return Reflect.get(...arguments);
855
+ // }
856
+ // },
857
+ // });
858
+ // });
859
+ // });
860
+ // // return (await target.pages()).map((page) => {
861
+ // // return new Proxy(page, handler2);
862
+ // // });
863
+ // };
864
+ // }
865
+ // },
866
+ // });
867
+ // }
837
868
 
838
869
  return Reflect.get(...arguments);
839
870
  },
840
871
  });
841
872
 
842
- // const x = await this.butThen(
843
- // store,
844
- // this.thenCB,
845
- // testResourceConfiguration,
846
- // butThenProxy
847
- // );
848
- // return x;
849
-
850
873
  return this.butThen(
851
874
  store,
852
875
  this.thenCB,
853
876
  testResourceConfiguration,
854
877
  butThenProxy
855
878
  ).catch((e) => {
856
- console.log("mar123");
857
879
  this.error = true;
858
880
  throw e;
859
881
  });