testeranto 0.82.0 → 0.85.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -2
- package/dist/common/package.json +3 -0
- package/dist/common/src/Node.js +2 -0
- package/dist/common/src/PM/main.js +182 -79
- package/dist/common/src/PM/node.js +32 -6
- package/dist/common/src/PM/web.js +28 -54
- package/dist/common/src/Project.js +0 -3
- package/dist/common/src/Puppeteer.js +9 -51
- package/dist/common/src/SubPackages/react-dom/jsx/web.js +11 -11
- package/dist/common/src/Web.js +2 -0
- package/dist/common/src/esbuildConfigs/featuresPlugin.js +39 -0
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +62 -41
- package/dist/common/src/esbuildConfigs/node.js +10 -3
- package/dist/common/src/esbuildConfigs/web.js +6 -2
- package/dist/common/src/lib/abstractBase.js +343 -335
- package/dist/common/src/lib/basebuilder.js +7 -3
- package/dist/common/src/lib/core.js +1 -1
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/package.json +3 -0
- package/dist/module/src/Node.js +1 -1
- package/dist/module/src/PM/main.js +182 -79
- package/dist/module/src/PM/node.js +32 -6
- package/dist/module/src/PM/web.js +28 -51
- package/dist/module/src/Project.js +0 -3
- package/dist/module/src/Puppeteer.js +9 -51
- package/dist/module/src/SubPackages/react-dom/jsx/web.js +10 -10
- package/dist/module/src/Web.js +1 -1
- package/dist/module/src/esbuildConfigs/featuresPlugin.js +34 -0
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +62 -41
- package/dist/module/src/esbuildConfigs/node.js +10 -3
- package/dist/module/src/esbuildConfigs/web.js +6 -2
- package/dist/module/src/lib/abstractBase.js +343 -335
- package/dist/module/src/lib/basebuilder.js +7 -3
- package/dist/module/src/lib/core.js +1 -1
- package/dist/module/tsconfig.module.tsbuildinfo +1 -1
- package/dist/prebuild/Puppeteer.mjs +82033 -0
- package/dist/types/src/Node.d.ts +5 -1
- package/dist/types/src/PM/index.d.ts +10 -4
- package/dist/types/src/PM/main.d.ts +21 -9
- package/dist/types/src/PM/node.d.ts +11 -3
- package/dist/types/src/PM/web.d.ts +11 -2
- package/dist/types/src/SubPackages/react-dom/jsx/index.d.ts +1 -0
- package/dist/types/src/SubPackages/react-test-renderer/jsx/index.d.ts +1 -0
- package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/index.d.ts +1 -0
- package/dist/types/src/Types.d.ts +2 -2
- package/dist/types/src/Web.d.ts +5 -1
- package/dist/types/src/esbuildConfigs/featuresPlugin.d.ts +5 -0
- package/dist/types/src/esbuildConfigs/inputFilesPlugin.d.ts +4 -2
- package/dist/types/src/lib/abstractBase.d.ts +5 -5
- package/dist/types/src/lib/types.d.ts +7 -5
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +18 -41
- package/pupBuild.js +18 -0
- package/src/Node.ts +1 -3
- package/src/PM/index.ts +12 -3
- package/src/PM/main.ts +300 -164
- package/src/PM/node.ts +40 -6
- package/src/PM/web.ts +108 -58
- package/src/Project.ts +0 -8
- package/src/Puppeteer.ts +11 -57
- package/src/SubPackages/react-dom/jsx/web.ts +15 -10
- package/src/Types.ts +5 -2
- package/src/Web.ts +1 -1
- package/src/esbuildConfigs/featuresPlugin.ts +43 -0
- package/src/esbuildConfigs/inputFilesPlugin.ts +98 -66
- package/src/esbuildConfigs/node.ts +18 -3
- package/src/esbuildConfigs/web.ts +14 -2
- package/src/lib/abstractBase.ts +381 -364
- package/src/lib/basebuilder.ts +7 -7
- package/src/lib/core.ts +1 -1
- package/src/lib/types.ts +13 -5
package/src/lib/abstractBase.ts
CHANGED
|
@@ -63,12 +63,12 @@ export abstract class BaseSuite<
|
|
|
63
63
|
.flat()
|
|
64
64
|
.filter((value, index, array) => {
|
|
65
65
|
return array.indexOf(value) === index;
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
return features;
|
|
66
|
+
});
|
|
67
|
+
// .reduce((mm, lm) => {
|
|
68
|
+
// mm[lm] = lm;
|
|
69
|
+
// return mm;
|
|
70
|
+
// }, {});
|
|
71
|
+
return features || [];
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
public toObj() {
|
|
@@ -120,64 +120,73 @@ export abstract class BaseSuite<
|
|
|
120
120
|
for (const [gNdx, g] of Object.entries(this.givens)) {
|
|
121
121
|
const beforeAllProxy = new Proxy(pm, {
|
|
122
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
|
+
|
|
123
132
|
if (prop === "writeFileSync") {
|
|
124
133
|
return (fp, contents) =>
|
|
125
134
|
target[prop](`suite-${sNdx}/beforeAll/${fp}`, contents);
|
|
126
135
|
}
|
|
127
136
|
|
|
128
|
-
if (prop === "browser") {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
}
|
|
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
|
+
// }
|
|
181
190
|
|
|
182
191
|
return Reflect.get(...arguments);
|
|
183
192
|
},
|
|
@@ -209,71 +218,75 @@ export abstract class BaseSuite<
|
|
|
209
218
|
}
|
|
210
219
|
}
|
|
211
220
|
|
|
212
|
-
const afterAllProxy = new Proxy(pm, {
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
});
|
|
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
|
+
// });
|
|
273
282
|
|
|
274
|
-
// pm.browser
|
|
275
283
|
try {
|
|
276
|
-
this.afterAll(
|
|
284
|
+
this.afterAll(
|
|
285
|
+
this.store,
|
|
286
|
+
artifactory,
|
|
287
|
+
// afterAllProxy
|
|
288
|
+
pm
|
|
289
|
+
);
|
|
277
290
|
} catch (e) {
|
|
278
291
|
console.error(e);
|
|
279
292
|
// this.fails.push(this);
|
|
@@ -388,7 +401,7 @@ export abstract class BaseGiven<
|
|
|
388
401
|
async give(
|
|
389
402
|
subject: ITestShape["isubject"],
|
|
390
403
|
key: string,
|
|
391
|
-
testResourceConfiguration,
|
|
404
|
+
testResourceConfiguration: ITTestResourceConfiguration,
|
|
392
405
|
tester: (t: Awaited<ITestShape["then"]> | undefined) => boolean,
|
|
393
406
|
artifactory: ITestArtifactory,
|
|
394
407
|
tLog: ITLog,
|
|
@@ -412,6 +425,15 @@ export abstract class BaseGiven<
|
|
|
412
425
|
);
|
|
413
426
|
}
|
|
414
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
|
+
|
|
415
437
|
return Reflect.get(...arguments);
|
|
416
438
|
},
|
|
417
439
|
});
|
|
@@ -454,106 +476,102 @@ export abstract class BaseGiven<
|
|
|
454
476
|
// throw e;
|
|
455
477
|
} finally {
|
|
456
478
|
try {
|
|
457
|
-
// const afterEachProxy = new Proxy(pm, {
|
|
458
|
-
// get(target, prop, receiver) {
|
|
459
|
-
// if (prop === "writeFileSync") {
|
|
460
|
-
// console.log("afterEachProxy", arguments, target[prop]);
|
|
461
|
-
// return (fp, contents) =>
|
|
462
|
-
// // target[prop](`${key}/andWhen/${fp}`, contents);
|
|
463
|
-
// target[prop](`${key}/afterEach/${fp}`, contents);
|
|
464
|
-
// }
|
|
465
|
-
|
|
466
|
-
// return Reflect.get(...arguments);
|
|
467
|
-
// },
|
|
468
|
-
// });
|
|
469
|
-
|
|
470
|
-
// await this.afterEach(this.store, key, givenArtifactory, afterEachProxy);
|
|
471
|
-
|
|
472
|
-
// await this.afterEach(this.store, key, givenArtifactory, pm);
|
|
473
|
-
|
|
474
479
|
const afterEachProxy = new Proxy(pm, {
|
|
475
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
|
+
|
|
476
489
|
if (prop === "writeFileSync") {
|
|
477
490
|
return (fp, contents) =>
|
|
478
491
|
target[prop](
|
|
479
|
-
`suite-${suiteNdx}/given-${key}/
|
|
492
|
+
`suite-${suiteNdx}/given-${key}/afterEach/${fp}`,
|
|
480
493
|
contents
|
|
481
494
|
);
|
|
482
495
|
}
|
|
483
496
|
|
|
484
|
-
if (prop === "browser") {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
}
|
|
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
|
+
// }
|
|
550
563
|
|
|
551
564
|
return Reflect.get(...arguments);
|
|
552
565
|
},
|
|
553
566
|
});
|
|
554
567
|
|
|
555
|
-
|
|
556
|
-
|
|
568
|
+
await this.afterEach(
|
|
569
|
+
this.store,
|
|
570
|
+
key,
|
|
571
|
+
givenArtifactory,
|
|
572
|
+
// pm
|
|
573
|
+
afterEachProxy
|
|
574
|
+
);
|
|
557
575
|
} catch (e) {
|
|
558
576
|
console.error("afterEach failed! no error will be recorded!", e);
|
|
559
577
|
}
|
|
@@ -580,7 +598,7 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
|
|
|
580
598
|
whenCB: (x: ITestShape["iselection"]) => ITestShape["then"],
|
|
581
599
|
testResource,
|
|
582
600
|
pm: PM
|
|
583
|
-
)
|
|
601
|
+
): Promise<any>;
|
|
584
602
|
|
|
585
603
|
toObj() {
|
|
586
604
|
return {
|
|
@@ -594,106 +612,106 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
|
|
|
594
612
|
testResourceConfiguration,
|
|
595
613
|
tLog: ITLog,
|
|
596
614
|
pm: PM,
|
|
597
|
-
|
|
615
|
+
filepath: string
|
|
598
616
|
) {
|
|
599
617
|
tLog(" When:", this.name);
|
|
600
618
|
|
|
601
619
|
const name = this.name;
|
|
602
620
|
const andWhenProxy = new Proxy(pm, {
|
|
603
|
-
// set(obj, prop, value) {
|
|
604
|
-
// return Reflect.set(...arguments);
|
|
605
|
-
// // if (prop === "eyeCount" && value % 2 !== 0) {
|
|
606
|
-
// // console.log("Monsters must have an even number of eyes");
|
|
607
|
-
// // } else {
|
|
608
|
-
// // return Reflect.set(...arguments);
|
|
609
|
-
// // }
|
|
610
|
-
// },
|
|
611
|
-
|
|
612
621
|
get(target, prop, receiver) {
|
|
622
|
+
if (prop === "customScreenShot") {
|
|
623
|
+
return (opts) =>
|
|
624
|
+
target.customScreenShot({
|
|
625
|
+
...opts,
|
|
626
|
+
path: `${filepath}/${opts.path}`,
|
|
627
|
+
});
|
|
628
|
+
}
|
|
613
629
|
if (prop === "writeFileSync") {
|
|
614
630
|
return (fp, contents) =>
|
|
615
|
-
|
|
616
|
-
target[prop](`${key}/andWhen/${fp}`, contents);
|
|
631
|
+
target[prop](`${filepath}/andWhen/${fp}`, contents);
|
|
617
632
|
}
|
|
618
633
|
|
|
619
634
|
/////////////////////
|
|
620
635
|
|
|
621
|
-
if (prop === "browser") {
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
}
|
|
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
|
+
// }
|
|
697
715
|
|
|
698
716
|
///////////////////////
|
|
699
717
|
|
|
@@ -701,7 +719,7 @@ export abstract class BaseWhen<ITestShape extends IBaseTest> {
|
|
|
701
719
|
},
|
|
702
720
|
});
|
|
703
721
|
|
|
704
|
-
return this.andWhen(
|
|
722
|
+
return await this.andWhen(
|
|
705
723
|
store,
|
|
706
724
|
this.whenCB,
|
|
707
725
|
testResourceConfiguration,
|
|
@@ -778,87 +796,86 @@ export abstract class BaseThen<
|
|
|
778
796
|
try {
|
|
779
797
|
const butThenProxy = new Proxy(pm, {
|
|
780
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
|
+
|
|
781
807
|
if (prop === "writeFileSync") {
|
|
782
808
|
return (fp, contents) =>
|
|
783
809
|
target[prop](`${filepath}/${fp}`, contents);
|
|
784
810
|
}
|
|
785
811
|
|
|
786
|
-
if (prop === "browser") {
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
}
|
|
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
|
+
// }
|
|
842
868
|
|
|
843
869
|
return Reflect.get(...arguments);
|
|
844
870
|
},
|
|
845
871
|
});
|
|
846
872
|
|
|
847
|
-
// const x = await this.butThen(
|
|
848
|
-
// store,
|
|
849
|
-
// this.thenCB,
|
|
850
|
-
// testResourceConfiguration,
|
|
851
|
-
// butThenProxy
|
|
852
|
-
// );
|
|
853
|
-
// return x;
|
|
854
|
-
|
|
855
873
|
return this.butThen(
|
|
856
874
|
store,
|
|
857
875
|
this.thenCB,
|
|
858
876
|
testResourceConfiguration,
|
|
859
877
|
butThenProxy
|
|
860
878
|
).catch((e) => {
|
|
861
|
-
console.log("mar123");
|
|
862
879
|
this.error = true;
|
|
863
880
|
throw e;
|
|
864
881
|
});
|