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.
- package/dist/common/src/Node.js +4 -2
- package/dist/common/src/PM/main.js +188 -61
- package/dist/common/src/PM/node.js +32 -7
- 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 +7 -1
- package/dist/common/src/esbuildConfigs/featuresPlugin.js +39 -0
- package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +62 -64
- 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 +348 -337
- package/dist/common/src/lib/basebuilder.js +9 -4
- package/dist/common/src/lib/core.js +1 -1
- package/dist/common/tsconfig.common.tsbuildinfo +1 -1
- package/dist/module/src/Node.js +3 -3
- package/dist/module/src/PM/main.js +188 -61
- package/dist/module/src/PM/node.js +32 -7
- 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 +6 -2
- package/dist/module/src/esbuildConfigs/featuresPlugin.js +34 -0
- package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +62 -64
- 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 +348 -337
- package/dist/module/src/lib/basebuilder.js +9 -4
- 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 -4
- package/dist/types/src/lib/core.d.ts +1 -1
- package/dist/types/src/lib/index.d.ts +1 -0
- package/dist/types/src/lib/types.d.ts +7 -5
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/package.json +18 -45
- package/pupBuild.js +18 -0
- package/src/Node.ts +3 -5
- package/src/PM/index.ts +12 -3
- package/src/PM/main.ts +306 -140
- package/src/PM/node.ts +40 -7
- 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 +6 -2
- package/src/esbuildConfigs/featuresPlugin.ts +43 -0
- package/src/esbuildConfigs/inputFilesPlugin.ts +97 -90
- package/src/esbuildConfigs/node.ts +18 -3
- package/src/esbuildConfigs/web.ts +14 -2
- package/src/lib/abstractBase.ts +388 -366
- package/src/lib/basebuilder.ts +9 -9
- package/src/lib/core.ts +4 -2
- package/src/lib/index.ts +1 -0
- package/src/lib/types.ts +14 -6
package/src/lib/abstractBase.ts
CHANGED
|
@@ -57,23 +57,28 @@ export abstract class BaseSuite<
|
|
|
57
57
|
this.fails = [];
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
public
|
|
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
|
-
|
|
69
|
-
|
|
70
|
-
|
|
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
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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
|
-
|
|
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(
|
|
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}/
|
|
492
|
+
`suite-${suiteNdx}/given-${key}/afterEach/${fp}`,
|
|
475
493
|
contents
|
|
476
494
|
);
|
|
477
495
|
}
|
|
478
496
|
|
|
479
|
-
if (prop === "browser") {
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
551
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
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
|
-
}
|
|
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
|
});
|