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
@@ -9,23 +9,26 @@ class BaseSuite {
9
9
  this.checks = checks;
10
10
  this.fails = [];
11
11
  }
12
- toObj() {
13
- const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
12
+ features() {
14
13
  const features = Object.keys(this.givens)
15
14
  .map((k) => this.givens[k].features)
16
15
  .flat()
17
16
  .filter((value, index, array) => {
18
17
  return array.indexOf(value) === index;
19
- })
20
- .reduce((mm, lm) => {
21
- mm[lm] = lm;
22
- return mm;
23
- }, {});
18
+ });
19
+ // .reduce((mm, lm) => {
20
+ // mm[lm] = lm;
21
+ // return mm;
22
+ // }, {});
23
+ return features || [];
24
+ }
25
+ toObj() {
26
+ const givens = Object.keys(this.givens).map((k) => this.givens[k].toObj());
24
27
  return {
25
28
  name: this.name,
26
29
  givens,
27
30
  fails: this.fails,
28
- features,
31
+ features: this.features(),
29
32
  };
30
33
  }
31
34
  setup(s, artifactory, tr, pm) {
@@ -48,56 +51,66 @@ class BaseSuite {
48
51
  for (const [gNdx, g] of Object.entries(this.givens)) {
49
52
  const beforeAllProxy = new Proxy(pm, {
50
53
  get(target, prop, receiver) {
54
+ if (prop === "customScreenShot") {
55
+ return (opts) => target.customScreenShot(Object.assign(Object.assign({}, opts), {
56
+ // path: `${filepath}/${opts.path}`,
57
+ path: `suite-${sNdx}/beforeAll/${opts.path}` }));
58
+ }
51
59
  if (prop === "writeFileSync") {
52
60
  return (fp, contents) => target[prop](`suite-${sNdx}/beforeAll/${fp}`, contents);
53
61
  }
54
- if (prop === "browser") {
55
- return new Proxy(target[prop], {
56
- get(bTarget, bProp, bReceiver) {
57
- if (bProp === "pages") {
58
- return async () => {
59
- return bTarget.pages().then((pages) => {
60
- return pages.map((page) => {
61
- return new Proxy(page, {
62
- get(pTarget, pProp, pReciever) {
63
- if (pProp === "screenshot") {
64
- return async (x) => {
65
- return pm.customScreenShot(Object.assign(Object.assign({}, x), { path: `${testResourceConfiguration.fs}/suite-${sNdx}/beforeAll` +
66
- "/" +
67
- x.path }), page);
68
- // return await window["custom-screenshot"]({
69
- // ...x,
70
- // path:
71
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
72
- // "/" +
73
- // x.path,
74
- // });
75
- };
76
- }
77
- else if (pProp === "mainFrame") {
78
- return () => pTarget[pProp]();
79
- }
80
- else if (pProp === "close") {
81
- return () => pTarget[pProp]();
82
- }
83
- // else if (pProp === "mainFrame") {
84
- // return () => target[pProp](...arguments);
85
- // }
86
- else {
87
- return Reflect.get(...arguments);
88
- }
89
- },
90
- });
91
- });
92
- });
93
- // return (await target.pages()).map((page) => {
94
- // return new Proxy(page, handler2);
95
- // });
96
- };
97
- }
98
- },
99
- });
100
- }
62
+ // if (prop === "browser") {
63
+ // return new Proxy(target[prop], {
64
+ // get(bTarget, bProp, bReceiver) {
65
+ // if (bProp === "pages") {
66
+ // return async () => {
67
+ // return bTarget.pages().then((pages) => {
68
+ // return pages.map((page) => {
69
+ // return new Proxy(page, {
70
+ // get(pTarget, pProp, pReciever) {
71
+ // if (pProp === "screenshot") {
72
+ // return async (x) => {
73
+ // return pm.customScreenShot(
74
+ // {
75
+ // ...x,
76
+ // path:
77
+ // `${testResourceConfiguration.fs}/suite-${sNdx}/beforeAll` +
78
+ // "/" +
79
+ // x.path,
80
+ // },
81
+ // page
82
+ // );
83
+ // // return await window["custom-screenshot"]({
84
+ // // ...x,
85
+ // // path:
86
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
87
+ // // "/" +
88
+ // // x.path,
89
+ // // });
90
+ // };
91
+ // } else if (pProp === "mainFrame") {
92
+ // return () => pTarget[pProp]();
93
+ // } else if (pProp === "close") {
94
+ // return () => pTarget[pProp]();
95
+ // }
96
+ // // else if (pProp === "mainFrame") {
97
+ // // return () => target[pProp](...arguments);
98
+ // // }
99
+ // else {
100
+ // return Reflect.get(...arguments);
101
+ // }
102
+ // },
103
+ // });
104
+ // });
105
+ // });
106
+ // // return (await target.pages()).map((page) => {
107
+ // // return new Proxy(page, handler2);
108
+ // // });
109
+ // };
110
+ // }
111
+ // },
112
+ // });
113
+ // }
101
114
  return Reflect.get(...arguments);
102
115
  },
103
116
  });
@@ -112,64 +125,68 @@ class BaseSuite {
112
125
  // return this;
113
126
  }
114
127
  }
115
- const afterAllProxy = new Proxy(pm, {
116
- get(target, prop, receiver) {
117
- if (prop === "writeFileSync") {
118
- return (fp, contents) => target[prop](`suite-${sNdx}/afterAll/${fp}`, contents);
119
- }
120
- if (prop === "browser") {
121
- return new Proxy(target[prop], {
122
- get(bTarget, bProp, bReceiver) {
123
- if (bProp === "pages") {
124
- return async () => {
125
- return bTarget.pages().then((pages) => {
126
- return pages.map((page) => {
127
- return new Proxy(page, {
128
- get(pTarget, pProp, pReciever) {
129
- if (pProp === "screenshot") {
130
- return async (x) => {
131
- return pm.customScreenShot(Object.assign(Object.assign({}, x), { path: `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
132
- "/" +
133
- x.path }));
134
- // return await window["custom-screenshot"]({
135
- // ...x,
136
- // path:
137
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
138
- // "/" +
139
- // x.path,
140
- // });
141
- };
142
- }
143
- else if (pProp === "mainFrame") {
144
- return () => pTarget[pProp]();
145
- }
146
- else if (pProp === "close") {
147
- return () => pTarget[pProp]();
148
- }
149
- // else if (pProp === "mainFrame") {
150
- // return () => target[pProp](...arguments);
151
- // }
152
- else {
153
- return Reflect.get(...arguments);
154
- }
155
- },
156
- });
157
- });
158
- });
159
- // return (await target.pages()).map((page) => {
160
- // return new Proxy(page, handler2);
161
- // });
162
- };
163
- }
164
- },
165
- });
166
- }
167
- return Reflect.get(...arguments);
168
- },
169
- });
170
- // pm.browser
128
+ // const afterAllProxy = new Proxy(pm, {
129
+ // get(target, prop, receiver) {
130
+ // if (prop === "writeFileSync") {
131
+ // return (fp, contents) =>
132
+ // target[prop](`suite-${sNdx}/afterAll/${fp}`, contents);
133
+ // }
134
+ // if (prop === "browser") {
135
+ // return new Proxy(target[prop], {
136
+ // get(bTarget, bProp, bReceiver) {
137
+ // if (bProp === "pages") {
138
+ // return async () => {
139
+ // return bTarget.pages().then((pages) => {
140
+ // return pages.map((page) => {
141
+ // return new Proxy(page, {
142
+ // get(pTarget, pProp, pReciever) {
143
+ // if (pProp === "screenshot") {
144
+ // return async (x) => {
145
+ // return pm.customScreenShot({
146
+ // ...x,
147
+ // path:
148
+ // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
149
+ // "/" +
150
+ // x.path,
151
+ // });
152
+ // // return await window["custom-screenshot"]({
153
+ // // ...x,
154
+ // // path:
155
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
156
+ // // "/" +
157
+ // // x.path,
158
+ // // });
159
+ // };
160
+ // } else if (pProp === "mainFrame") {
161
+ // return () => pTarget[pProp]();
162
+ // } else if (pProp === "close") {
163
+ // return () => pTarget[pProp]();
164
+ // }
165
+ // // else if (pProp === "mainFrame") {
166
+ // // return () => target[pProp](...arguments);
167
+ // // }
168
+ // else {
169
+ // return Reflect.get(...arguments);
170
+ // }
171
+ // },
172
+ // });
173
+ // });
174
+ // });
175
+ // // return (await target.pages()).map((page) => {
176
+ // // return new Proxy(page, handler2);
177
+ // // });
178
+ // };
179
+ // }
180
+ // },
181
+ // });
182
+ // }
183
+ // return Reflect.get(...arguments);
184
+ // },
185
+ // });
171
186
  try {
172
- this.afterAll(this.store, artifactory, afterAllProxy);
187
+ this.afterAll(this.store, artifactory,
188
+ // afterAllProxy
189
+ pm);
173
190
  }
174
191
  catch (e) {
175
192
  console.error(e);
@@ -238,6 +255,11 @@ class BaseGiven {
238
255
  if (prop === "writeFileSync") {
239
256
  return (fp, contents) => target[prop](`suite-${suiteNdx}/given-${key}/when/beforeEach/${fp}`, contents);
240
257
  }
258
+ if (prop === "customScreenShot") {
259
+ return (opts) => target.customScreenShot(Object.assign(Object.assign({}, opts), {
260
+ // path: `${filepath}/${opts.path}`,
261
+ path: `suite-${suiteNdx}/given-${key}/when/beforeEach/${opts.path}` }));
262
+ }
241
263
  return Reflect.get(...arguments);
242
264
  },
243
265
  });
@@ -260,89 +282,84 @@ class BaseGiven {
260
282
  }
261
283
  finally {
262
284
  try {
263
- // const afterEachProxy = new Proxy(pm, {
264
- // get(target, prop, receiver) {
265
- // if (prop === "writeFileSync") {
266
- // console.log("afterEachProxy", arguments, target[prop]);
267
- // return (fp, contents) =>
268
- // // target[prop](`${key}/andWhen/${fp}`, contents);
269
- // target[prop](`${key}/afterEach/${fp}`, contents);
270
- // }
271
- // return Reflect.get(...arguments);
272
- // },
273
- // });
274
- // await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
275
- // await this.afterEach(this.store, key, givenArtifactory, pm);
276
285
  const afterEachProxy = new Proxy(pm, {
277
286
  get(target, prop, receiver) {
278
- if (prop === "writeFileSync") {
279
- return (fp, contents) => target[prop](`suite-${suiteNdx}/given-${key}/afterAll/${fp}`, contents);
287
+ if (prop === "customScreenShot") {
288
+ return (opts) => target.customScreenShot(Object.assign(Object.assign({}, opts), { path: `suite-${suiteNdx}/given-${key}/afterEach/${opts.path}` }));
280
289
  }
281
- if (prop === "browser") {
282
- return new Proxy(target[prop], {
283
- get(bTarget, bProp, bReceiver) {
284
- if (bProp === "pages") {
285
- return async () => {
286
- return bTarget.pages().then((pages) => {
287
- return pages.map((page) => {
288
- return new Proxy(page, {
289
- get(pTarget, pProp, pReciever) {
290
- if (pProp === "screenshot") {
291
- return async (x) => {
292
- // console.log(
293
- // "custom-screenshot-MARK-afterEachProxy",
294
- // window["custom-screenshot"].toString()
295
- // );
296
- return pm.customScreenShot(Object.assign(Object.assign({}, x), { path: `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
297
- "/" +
298
- x.path }), page);
299
- // return await pTarget[pProp]({
300
- // ...x,
301
- // path:
302
- // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
303
- // "/" +
304
- // x.path,
305
- // });
306
- };
307
- }
308
- else if (pProp === "mainFrame") {
309
- return () => pTarget[pProp]();
310
- // return target[pProp];
311
- // return Reflect.get(...arguments);
312
- }
313
- else if (pProp === "exposeFunction") {
314
- // return Reflect.get(target, prop, receiver);
315
- return (...a) => pTarget[pProp](...a);
316
- // return target[pProp];
317
- }
318
- else if (pProp === "removeExposedFunction") {
319
- // return Reflect.get(target, prop, receiver);
320
- return pTarget[pProp].bind(pTarget);
321
- // return target[pProp];
322
- }
323
- // else if (pProp === "#frameManager") {
324
- // return () => target[pProp](...arguments);
325
- // }
326
- else {
327
- return Reflect.get(...arguments);
328
- }
329
- },
330
- });
331
- });
332
- });
333
- // return (await target.pages()).map((page) => {
334
- // return new Proxy(page, handler2);
335
- // });
336
- };
337
- }
338
- },
339
- });
290
+ if (prop === "writeFileSync") {
291
+ return (fp, contents) => target[prop](`suite-${suiteNdx}/given-${key}/afterEach/${fp}`, contents);
340
292
  }
293
+ // if (prop === "browser") {
294
+ // return new Proxy(target[prop], {
295
+ // get(bTarget, bProp, bReceiver) {
296
+ // if (bProp === "pages") {
297
+ // return async () => {
298
+ // return bTarget.pages().then((pages) => {
299
+ // return pages.map((page) => {
300
+ // return new Proxy(page, {
301
+ // get(pTarget, pProp, pReciever) {
302
+ // if (pProp === "screenshot") {
303
+ // return async (x) => {
304
+ // // console.log(
305
+ // // "custom-screenshot-MARK-afterEachProxy",
306
+ // // window["custom-screenshot"].toString()
307
+ // // );
308
+ // return pm.customScreenShot(
309
+ // {
310
+ // ...x,
311
+ // path:
312
+ // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
313
+ // "/" +
314
+ // x.path,
315
+ // },
316
+ // page
317
+ // );
318
+ // // return await pTarget[pProp]({
319
+ // // ...x,
320
+ // // path:
321
+ // // `${testResourceConfiguration.fs}/suite-${suiteNdx}/given-${key}/afterEach` +
322
+ // // "/" +
323
+ // // x.path,
324
+ // // });
325
+ // };
326
+ // } else if (pProp === "mainFrame") {
327
+ // return () => pTarget[pProp]();
328
+ // // return target[pProp];
329
+ // // return Reflect.get(...arguments);
330
+ // } else if (pProp === "exposeFunction") {
331
+ // // return Reflect.get(target, prop, receiver);
332
+ // return (...a) => pTarget[pProp](...a);
333
+ // // return target[pProp];
334
+ // } else if (pProp === "removeExposedFunction") {
335
+ // // return Reflect.get(target, prop, receiver);
336
+ // return pTarget[pProp].bind(pTarget);
337
+ // // return target[pProp];
338
+ // }
339
+ // // else if (pProp === "#frameManager") {
340
+ // // return () => target[pProp](...arguments);
341
+ // // }
342
+ // else {
343
+ // return Reflect.get(...arguments);
344
+ // }
345
+ // },
346
+ // });
347
+ // });
348
+ // });
349
+ // // return (await target.pages()).map((page) => {
350
+ // // return new Proxy(page, handler2);
351
+ // // });
352
+ // };
353
+ // }
354
+ // },
355
+ // });
356
+ // }
341
357
  return Reflect.get(...arguments);
342
358
  },
343
359
  });
344
- // console.log("mark5", this.store, key);
345
- await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
360
+ await this.afterEach(this.store, key, givenArtifactory,
361
+ // pm
362
+ afterEachProxy);
346
363
  }
347
364
  catch (e) {
348
365
  console.error("afterEach failed! no error will be recorded!", e);
@@ -363,104 +380,101 @@ class BaseWhen {
363
380
  error: this.error,
364
381
  };
365
382
  }
366
- async test(store, testResourceConfiguration, tLog, pm, key) {
383
+ async test(store, testResourceConfiguration, tLog, pm, filepath) {
367
384
  tLog(" When:", this.name);
368
385
  const name = this.name;
369
386
  const andWhenProxy = new Proxy(pm, {
370
- // set(obj, prop, value) {
371
- // return Reflect.set(...arguments);
372
- // // if (prop === "eyeCount" && value % 2 !== 0) {
373
- // // console.log("Monsters must have an even number of eyes");
374
- // // } else {
375
- // // return Reflect.set(...arguments);
376
- // // }
377
- // },
378
387
  get(target, prop, receiver) {
388
+ if (prop === "customScreenShot") {
389
+ return (opts) => target.customScreenShot(Object.assign(Object.assign({}, opts), { path: `${filepath}/${opts.path}` }));
390
+ }
379
391
  if (prop === "writeFileSync") {
380
- return (fp, contents) =>
381
- // target[prop](`${key}/andWhen/${fp}`, contents);
382
- target[prop](`${key}/andWhen/${fp}`, contents);
392
+ return (fp, contents) => target[prop](`${filepath}/andWhen/${fp}`, contents);
383
393
  }
384
394
  /////////////////////
385
- if (prop === "browser") {
386
- return new Proxy(target[prop], {
387
- get(bTarget, bProp, bReceiver) {
388
- if (bProp === "pages") {
389
- return async () => {
390
- return bTarget.pages().then((pages) => {
391
- return pages.map((page) => {
392
- return new Proxy(page, {
393
- get(pTarget, pProp, pReciever) {
394
- // console.log("mark get", pTarget, pProp, pReciever);
395
- if (pProp === "screenshot") {
396
- return async (x) => {
397
- return pm.customScreenShot(Object.assign(Object.assign({}, x), { path: `${testResourceConfiguration.fs}/${key}/afterEach` +
398
- "/" +
399
- x.path }), page);
400
- };
401
- }
402
- else if (pProp === "mainFrame") {
403
- return () => pTarget[pProp]();
404
- // return target[pProp];
405
- // return Reflect.get(...arguments);
406
- }
407
- else if (pProp === "exposeFunction") {
408
- // return Reflect.get(target, prop, receiver);
409
- return pTarget[pProp].bind(pTarget);
410
- // return target[pProp];
411
- }
412
- else if (pProp === "removeExposedFunction") {
413
- // return Reflect.get(target, prop, receiver);
414
- return pTarget[pProp].bind(pTarget);
415
- // return target[pProp];
416
- }
417
- else if (pProp === "click") {
418
- // console.log("mark12", arguments);
419
- // return Reflect.get(target, prop, receiver);
420
- // return pTarget[pProp].bind(pTarget);
421
- // return target[pProp];
422
- return (selector, options) => {
423
- // console.log("mark13", selector, options);
424
- // debugger;
425
- pTarget[pProp](selector, options);
426
- };
427
- }
428
- else if (pProp === "$") {
429
- return Reflect.get(...arguments);
430
- // return Reflect.get(target, prop, receiver);
431
- // return pTarget[pProp].bind(pTarget);
432
- // return target[pProp];
433
- // return pTarget[pProp].bind(pTarget);
434
- // return async (s) => {
435
- // console.log("mark17", s);
436
- // console.log("pTarget", pTarget);
437
- // console.log("pProp", pProp);
438
- // console.log("pReciever", pReciever);
439
- // // return "XXX";
440
- // // debugger;
441
- // return await pTarget[pProp](s);
442
- // };
443
- }
444
- else {
445
- return Reflect.get(...arguments);
446
- }
447
- },
448
- });
449
- });
450
- });
451
- // return (await target.pages()).map((page) => {
452
- // return new Proxy(page, handler2);
453
- // });
454
- };
455
- }
456
- },
457
- });
458
- }
395
+ // if (prop === "browser") {
396
+ // return new Proxy(target[prop], {
397
+ // get(bTarget, bProp, bReceiver) {
398
+ // if (bProp === "pages") {
399
+ // return async () => {
400
+ // return bTarget.pages().then((pages) => {
401
+ // return pages.map((page) => {
402
+ // return new Proxy(page, {
403
+ // get(pTarget, pProp, pReciever) {
404
+ // // console.log("mark get", pTarget, pProp, pReciever);
405
+ // if (pProp === "screenshot") {
406
+ // return async (x) => {
407
+ // return pm.customScreenShot(
408
+ // {
409
+ // ...x,
410
+ // path:
411
+ // `${testResourceConfiguration.fs}/${key}/afterEach` +
412
+ // "/" +
413
+ // x.path,
414
+ // },
415
+ // page
416
+ // );
417
+ // };
418
+ // } else if (pProp === "mainFrame") {
419
+ // return () => pTarget[pProp]();
420
+ // // return target[pProp];
421
+ // // return Reflect.get(...arguments);
422
+ // } else if (pProp === "exposeFunction") {
423
+ // // return Reflect.get(target, prop, receiver);
424
+ // return pTarget[pProp].bind(pTarget);
425
+ // // return target[pProp];
426
+ // } else if (pProp === "removeExposedFunction") {
427
+ // // return Reflect.get(target, prop, receiver);
428
+ // return pTarget[pProp].bind(pTarget);
429
+ // // return target[pProp];
430
+ // } else if (pProp === "click") {
431
+ // // console.log("mark12", arguments);
432
+ // // return Reflect.get(target, prop, receiver);
433
+ // // return pTarget[pProp].bind(pTarget);
434
+ // // return target[pProp];
435
+ // return (selector, options) => {
436
+ // pTarget[pProp](selector, options);
437
+ // };
438
+ // } else if (pProp === "$eval") {
439
+ // // return pTarget[pProp].bind(pTarget);
440
+ // return (selector, options) => {
441
+ // pTarget[pProp](selector, options);
442
+ // };
443
+ // } else if (pProp === "$") {
444
+ // return Reflect.get(...arguments);
445
+ // // return Reflect.get(target, prop, receiver);
446
+ // // return pTarget[pProp].bind(pTarget);
447
+ // // return target[pProp];
448
+ // // return pTarget[pProp].bind(pTarget);
449
+ // // return async (s) => {
450
+ // // console.log("mark17", s);
451
+ // // console.log("pTarget", pTarget);
452
+ // // console.log("pProp", pProp);
453
+ // // console.log("pReciever", pReciever);
454
+ // // // return "XXX";
455
+ // // // debugger;
456
+ // // return await pTarget[pProp](s);
457
+ // // };
458
+ // } else {
459
+ // return Reflect.get(...arguments);
460
+ // }
461
+ // },
462
+ // });
463
+ // });
464
+ // });
465
+ // // return (await target.pages()).map((page) => {
466
+ // // return new Proxy(page, handler2);
467
+ // // });
468
+ // };
469
+ // }
470
+ // },
471
+ // });
472
+ // }
459
473
  ///////////////////////
460
474
  return Reflect.get(...arguments);
461
475
  },
462
476
  });
463
- return this.andWhen(store, this.whenCB, testResourceConfiguration, andWhenProxy).catch((e) => {
477
+ return await this.andWhen(store, this.whenCB, testResourceConfiguration, andWhenProxy).catch((e) => {
464
478
  this.error = true;
465
479
  // throw e;
466
480
  });
@@ -495,75 +509,72 @@ class BaseThen {
495
509
  try {
496
510
  const butThenProxy = new Proxy(pm, {
497
511
  get(target, prop, receiver) {
512
+ if (prop === "customScreenShot") {
513
+ return (opts) => target.customScreenShot(Object.assign(Object.assign({}, opts), { path: `${filepath}/${opts.path}` }));
514
+ }
498
515
  if (prop === "writeFileSync") {
499
516
  return (fp, contents) => target[prop](`${filepath}/${fp}`, contents);
500
517
  }
501
- if (prop === "browser") {
502
- return new Proxy(target[prop], {
503
- get(bTarget, bProp, bReceiver) {
504
- if (bProp === "pages") {
505
- return async () => {
506
- return bTarget.pages().then((pages) => {
507
- return pages.map((page) => {
508
- return new Proxy(page, {
509
- get(pTarget, pProp, pReciever) {
510
- if (pProp === "screenshot") {
511
- return async (x) => {
512
- return pm.customScreenShot(Object.assign(Object.assign({}, x), { path: `${testResourceConfiguration.fs}/${filepath}/butThen` +
513
- "/" +
514
- x.path }), page);
515
- // return await window["custom-screenshot"]({
516
- // ...x,
517
- // path:
518
- // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
519
- // "/" +
520
- // x.path,
521
- // });
522
- };
523
- }
524
- else if (pProp === "close") {
525
- return () => pTarget[pProp]();
526
- }
527
- else if (pProp === "mainFrame") {
528
- return () => pTarget[pProp]();
529
- }
530
- else if (pProp === "exposeFunction") {
531
- // return Reflect.get(target, prop, receiver);
532
- return (...a) => pTarget[pProp](...a);
533
- // return target[pProp];
534
- }
535
- else if (pProp === "removeExposedFunction") {
536
- // return Reflect.get(target, prop, receiver);
537
- return pTarget[pProp].bind(pTarget);
538
- // return target[pProp];
539
- }
540
- else {
541
- return Reflect.get(...arguments);
542
- }
543
- },
544
- });
545
- });
546
- });
547
- // return (await target.pages()).map((page) => {
548
- // return new Proxy(page, handler2);
549
- // });
550
- };
551
- }
552
- },
553
- });
554
- }
518
+ // if (prop === "browser") {
519
+ // return new Proxy(target[prop], {
520
+ // get(bTarget, bProp, bReceiver) {
521
+ // if (bProp === "pages") {
522
+ // return async () => {
523
+ // return bTarget.pages().then((pages) => {
524
+ // return pages.map((page) => {
525
+ // return new Proxy(page, {
526
+ // get(pTarget, pProp, pReciever) {
527
+ // if (pProp === "screenshot") {
528
+ // return async (x) => {
529
+ // return pm.customScreenShot(
530
+ // {
531
+ // ...x,
532
+ // path:
533
+ // `${testResourceConfiguration.fs}/${filepath}/butThen` +
534
+ // "/" +
535
+ // x.path,
536
+ // },
537
+ // page
538
+ // );
539
+ // // return await window["custom-screenshot"]({
540
+ // // ...x,
541
+ // // path:
542
+ // // `${testResourceConfiguration.fs}/suite-${sNdx}/afterAll` +
543
+ // // "/" +
544
+ // // x.path,
545
+ // // });
546
+ // };
547
+ // } else if (pProp === "close") {
548
+ // return () => pTarget[pProp]();
549
+ // } else if (pProp === "mainFrame") {
550
+ // return () => pTarget[pProp]();
551
+ // } else if (pProp === "exposeFunction") {
552
+ // // return Reflect.get(target, prop, receiver);
553
+ // return (...a) => pTarget[pProp](...a);
554
+ // // return target[pProp];
555
+ // } else if (pProp === "removeExposedFunction") {
556
+ // // return Reflect.get(target, prop, receiver);
557
+ // return pTarget[pProp].bind(pTarget);
558
+ // // return target[pProp];
559
+ // } else {
560
+ // return Reflect.get(...arguments);
561
+ // }
562
+ // },
563
+ // });
564
+ // });
565
+ // });
566
+ // // return (await target.pages()).map((page) => {
567
+ // // return new Proxy(page, handler2);
568
+ // // });
569
+ // };
570
+ // }
571
+ // },
572
+ // });
573
+ // }
555
574
  return Reflect.get(...arguments);
556
575
  },
557
576
  });
558
- // const x = await this.butThen(
559
- // store,
560
- // this.thenCB,
561
- // testResourceConfiguration,
562
- // butThenProxy
563
- // );
564
- // return x;
565
577
  return this.butThen(store, this.thenCB, testResourceConfiguration, butThenProxy).catch((e) => {
566
- console.log("mar123");
567
578
  this.error = true;
568
579
  throw e;
569
580
  });