testeranto 0.94.0 → 0.100.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 (103) hide show
  1. package/bundle.js +4 -7
  2. package/dist/common/src/PM/main.js +160 -42
  3. package/dist/common/src/PM/node.js +20 -5
  4. package/dist/common/src/PM/web.js +19 -4
  5. package/dist/common/src/SubPackages/react/jsx/node.js +1 -6
  6. package/dist/common/src/cli.js +439 -0
  7. package/dist/common/src/cli2.js +144 -0
  8. package/dist/common/src/esbuildConfigs/inputFilesPlugin.js +18 -6
  9. package/dist/common/src/esbuildConfigs/node.js +1 -4
  10. package/dist/common/src/esbuildConfigs/web.js +1 -1
  11. package/dist/common/src/lib/abstractBase.js +14 -91
  12. package/dist/common/src/lib/types.js +1 -0
  13. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  14. package/dist/module/src/PM/main.js +160 -42
  15. package/dist/module/src/PM/node.js +20 -5
  16. package/dist/module/src/PM/web.js +19 -4
  17. package/dist/module/src/SubPackages/react/jsx/node.js +1 -6
  18. package/dist/module/src/cli.js +411 -0
  19. package/dist/module/src/cli2.js +116 -0
  20. package/dist/module/src/esbuildConfigs/inputFilesPlugin.js +18 -6
  21. package/dist/module/src/esbuildConfigs/node.js +1 -4
  22. package/dist/module/src/esbuildConfigs/web.js +1 -1
  23. package/dist/module/src/lib/abstractBase.js +14 -91
  24. package/dist/module/src/lib/types.js +1 -0
  25. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  26. package/dist/prebuild/cli.mjs +1491 -0
  27. package/dist/prebuild/{run-tests.mjs → cli2.mjs} +203 -156
  28. package/dist/types/src/Node.d.ts +2 -2
  29. package/dist/types/src/PM/index.d.ts +10 -2
  30. package/dist/types/src/PM/main.d.ts +13 -7
  31. package/dist/types/src/PM/node.d.ts +9 -2
  32. package/dist/types/src/PM/web.d.ts +9 -3
  33. package/dist/types/src/SubPackages/puppeteer.d.ts +1 -1
  34. package/dist/types/src/SubPackages/react/component/node.d.ts +1 -1
  35. package/dist/types/src/SubPackages/react/component/web.d.ts +1 -1
  36. package/dist/types/src/SubPackages/react/jsx/node.d.ts +3 -3
  37. package/dist/types/src/SubPackages/react/jsx/web.d.ts +2 -2
  38. package/dist/types/src/SubPackages/react-dom/component/node.d.ts +2 -2
  39. package/dist/types/src/SubPackages/react-dom/component/web.d.ts +1 -1
  40. package/dist/types/src/SubPackages/react-dom/jsx/node.d.ts +1 -1
  41. package/dist/types/src/SubPackages/react-dom/jsx/web.d.ts +2 -2
  42. package/dist/types/src/SubPackages/react-test-renderer/MemoExoticComponent/node.d.ts +2 -2
  43. package/dist/types/src/SubPackages/react-test-renderer/component/node.d.ts +2 -2
  44. package/dist/types/src/SubPackages/react-test-renderer/component/web.d.ts +2 -2
  45. package/dist/types/src/SubPackages/react-test-renderer/fc/node.d.ts +2 -2
  46. package/dist/types/src/SubPackages/react-test-renderer/fc/web.d.ts +2 -2
  47. package/dist/types/src/SubPackages/react-test-renderer/jsx/node.d.ts +3 -2
  48. package/dist/types/src/SubPackages/react-test-renderer/jsx/web.d.ts +2 -2
  49. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/node.d.ts +2 -2
  50. package/dist/types/src/SubPackages/react-test-renderer/jsx-promised/web.d.ts +2 -2
  51. package/dist/types/src/Types.d.ts +60 -21
  52. package/dist/types/src/Web.d.ts +2 -2
  53. package/dist/types/src/lib/index.d.ts +1 -1
  54. package/dist/types/src/lib/types.d.ts +2 -30
  55. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  56. package/package.json +11 -8
  57. package/src/PM/index.ts +12 -8
  58. package/src/PM/main.ts +218 -62
  59. package/src/PM/node.ts +42 -7
  60. package/src/PM/web.ts +33 -5
  61. package/src/SubPackages/react/jsx/node.ts +16 -5
  62. package/src/SubPackages/react-test-renderer/jsx/node.ts +16 -1
  63. package/src/Types.ts +362 -114
  64. package/src/cli.ts +535 -0
  65. package/src/cli2.ts +157 -0
  66. package/src/esbuildConfigs/inputFilesPlugin.ts +27 -6
  67. package/src/esbuildConfigs/node.ts +4 -7
  68. package/src/esbuildConfigs/web.ts +4 -3
  69. package/src/lib/abstractBase.ts +58 -115
  70. package/src/lib/types.ts +3 -177
  71. package/dist/common/src/Aider.js +0 -143
  72. package/dist/common/src/Project.js +0 -227
  73. package/dist/common/src/Puppeteer.js +0 -111
  74. package/dist/common/src/build-tests.js +0 -39
  75. package/dist/common/src/esbuildConfigs/features.js +0 -14
  76. package/dist/common/src/esbuildConfigs/report.js +0 -14
  77. package/dist/common/src/esbuildConfigs/tests.js +0 -13
  78. package/dist/common/src/run-tests.js +0 -39
  79. package/dist/module/src/Aider.js +0 -136
  80. package/dist/module/src/Project.js +0 -220
  81. package/dist/module/src/Puppeteer.js +0 -106
  82. package/dist/module/src/build-tests.js +0 -11
  83. package/dist/module/src/esbuildConfigs/features.js +0 -12
  84. package/dist/module/src/esbuildConfigs/report.js +0 -14
  85. package/dist/module/src/esbuildConfigs/tests.js +0 -11
  86. package/dist/module/src/run-tests.js +0 -11
  87. package/dist/prebuild/build-tests.mjs +0 -553
  88. package/dist/types/src/Aider.d.ts +0 -1
  89. package/dist/types/src/Project.d.ts +0 -12
  90. package/dist/types/src/Puppeteer.d.ts +0 -2
  91. package/dist/types/src/esbuildConfigs/features.d.ts +0 -4
  92. package/dist/types/src/esbuildConfigs/report.d.ts +0 -0
  93. package/dist/types/src/esbuildConfigs/tests.d.ts +0 -4
  94. package/src/Aider.ts +0 -168
  95. package/src/Project.ts +0 -292
  96. package/src/Puppeteer.ts +0 -143
  97. package/src/build-tests.ts +0 -12
  98. package/src/esbuildConfigs/features.ts +0 -17
  99. package/src/esbuildConfigs/report.ts +0 -15
  100. package/src/esbuildConfigs/tests.ts +0 -14
  101. package/src/run-tests.ts +0 -12
  102. /package/dist/types/src/{build-tests.d.ts → cli.d.ts} +0 -0
  103. /package/dist/types/src/{run-tests.d.ts → cli2.d.ts} +0 -0
@@ -3,11 +3,22 @@ import path from "path";
3
3
  import puppeteer from "puppeteer-core";
4
4
  import crypto from "crypto";
5
5
  import { PM } from "./index.js";
6
- import { destinationOfRuntime } from "../utils.js";
7
6
  const fileStreams3 = [];
8
7
  const fPaths = [];
9
8
  const files = {};
9
+ const recorders = {};
10
10
  const screenshots = {};
11
+ const red = "\x1b[31m";
12
+ const green = "\x1b[32m";
13
+ const reset = "\x1b[0m"; // Resets to default color
14
+ const statusMessagePretty = (failures, test) => {
15
+ if (failures === 0) {
16
+ console.log(green + `${test} completed successfully` + reset);
17
+ }
18
+ else {
19
+ console.log(red + `${test} failed ${failures} times` + reset);
20
+ }
21
+ };
11
22
  export class PM_Main extends PM {
12
23
  constructor(configs) {
13
24
  super();
@@ -33,7 +44,7 @@ export class PM_Main extends PM {
33
44
  }
34
45
  };
35
46
  this.launchNode = async (src, dest) => {
36
- console.log("launchNode", src);
47
+ console.log("! node", src);
37
48
  this.register(src);
38
49
  const destFolder = dest.replace(".mjs", "");
39
50
  let argz = "";
@@ -80,25 +91,36 @@ export class PM_Main extends PM {
80
91
  console.error("negative port makes no sense", src);
81
92
  process.exit(-1);
82
93
  }
83
- const builtfile = dest + ".mjs";
94
+ const builtfile = dest;
84
95
  const webSideCares = [];
85
- await Promise.all(testConfig[3].map(async (sidecar) => {
86
- if (sidecar[1] === "web") {
87
- const s = await this.launchWebSideCar(sidecar[0], destinationOfRuntime(sidecar[0], "web", this.configs), sidecar);
88
- webSideCares.push(s);
89
- return s;
90
- }
91
- if (sidecar[1] === "node") {
92
- return this.launchNodeSideCar(sidecar[0], destinationOfRuntime(sidecar[0], "node", this.configs), sidecar);
93
- }
94
- }));
96
+ // await Promise.all(
97
+ // testConfig[3].map(async (sidecar) => {
98
+ // if (sidecar[1] === "web") {
99
+ // const s = await this.launchWebSideCar(
100
+ // sidecar[0],
101
+ // destinationOfRuntime(sidecar[0], "web", this.configs),
102
+ // sidecar
103
+ // );
104
+ // webSideCares.push(s);
105
+ // return s;
106
+ // }
107
+ // if (sidecar[1] === "node") {
108
+ // return this.launchNodeSideCar(
109
+ // sidecar[0],
110
+ // destinationOfRuntime(sidecar[0], "node", this.configs),
111
+ // sidecar
112
+ // );
113
+ // }
114
+ // })
115
+ // );
95
116
  this.server[builtfile] = await import(`${builtfile}?cacheBust=${Date.now()}`).then((module) => {
96
117
  return module.default.then((defaultModule) => {
97
118
  defaultModule
98
119
  .receiveTestResourceConfig(argz)
99
120
  .then(async ({ features, failed }) => {
100
- this.receiveFeatures(features, destFolder);
101
- console.log(`${src} completed with ${failed} errors`);
121
+ this.receiveFeatures(features, destFolder, src);
122
+ // console.log(`${src} completed with ${failed} errors`);
123
+ statusMessagePretty(failed, src);
102
124
  })
103
125
  .catch((e) => {
104
126
  console.log(`${src} errored with`, e);
@@ -294,14 +316,18 @@ export class PM_Main extends PM {
294
316
  }
295
317
  }
296
318
  };
297
- this.launchWeb = (t, dest, sidecars) => {
298
- console.log("launchWeb", t, dest);
319
+ this.launchWeb = (t, dest) => {
320
+ console.log("! web", t);
299
321
  this.register(t);
300
- sidecars.map((sidecar) => {
301
- if (sidecar[1] === "node") {
302
- return this.launchNodeSideCar(sidecar[0], destinationOfRuntime(sidecar[0], "node", this.configs), sidecar);
303
- }
304
- });
322
+ // sidecars.map((sidecar) => {
323
+ // if (sidecar[1] === "node") {
324
+ // return this.launchNodeSideCar(
325
+ // sidecar[0],
326
+ // destinationOfRuntime(sidecar[0], "node", this.configs),
327
+ // sidecar
328
+ // );
329
+ // }
330
+ // });
305
331
  const destFolder = dest.replace(".mjs", "");
306
332
  const webArgz = JSON.stringify({
307
333
  name: dest,
@@ -309,9 +335,10 @@ export class PM_Main extends PM {
309
335
  fs: destFolder,
310
336
  browserWSEndpoint: this.browser.wsEndpoint(),
311
337
  });
338
+ const d = `${dest}?cacheBust=${Date.now()}`;
312
339
  const evaluation = `
313
- console.log("importing ${dest}.mjs");
314
- import('${dest}.mjs').then(async (x) => {
340
+ console.log("importing ${d}");
341
+ import('${d}').then(async (x) => {
315
342
  console.log("imported", (await x.default));
316
343
  try {
317
344
  return await (await x.default).receiveTestResourceConfig(${webArgz})
@@ -321,8 +348,8 @@ export class PM_Main extends PM {
321
348
  })`;
322
349
  const fileStreams2 = [];
323
350
  const doneFileStream2 = [];
324
- const stdoutStream = fs.createWriteStream(`${dest}/stdout.log`);
325
- const stderrStream = fs.createWriteStream(`${dest}/stderr.log`);
351
+ const stdoutStream = fs.createWriteStream(`${destFolder}/stdout.log`);
352
+ const stderrStream = fs.createWriteStream(`${destFolder}/stderr.log`);
326
353
  this.browser
327
354
  .newPage()
328
355
  .then((page) => {
@@ -486,7 +513,7 @@ export class PM_Main extends PM {
486
513
  files[t] = new Set();
487
514
  }
488
515
  // files[t].add(filepath);
489
- fs.writeFileSync(dest + "/manifest.json", JSON.stringify(Array.from(files[t])));
516
+ fs.writeFileSync(destFolder + "/manifest.json", JSON.stringify(Array.from(files[t])));
490
517
  delete files[t];
491
518
  Promise.all(screenshots[t] || []).then(() => {
492
519
  delete screenshots[t];
@@ -521,12 +548,13 @@ export class PM_Main extends PM {
521
548
  stdoutStream.write(JSON.stringify(log.location()));
522
549
  stdoutStream.write(JSON.stringify(log.stackTrace()));
523
550
  });
524
- await page.goto(`file://${`${dest}.html`}`, {});
551
+ await page.goto(`file://${`${destFolder}.html`}`, {});
525
552
  await page
526
553
  .evaluate(evaluation)
527
554
  .then(async ({ failed, features }) => {
528
- this.receiveFeatures(features, destFolder);
529
- console.log(`${t} completed with ${failed} errors`);
555
+ this.receiveFeatures(features, destFolder, t);
556
+ // console.log(`${t} completed with ${failed} errors`);
557
+ statusMessagePretty(failed, t);
530
558
  })
531
559
  .catch((e) => {
532
560
  console.log(`${t} errored with`, e);
@@ -537,7 +565,8 @@ export class PM_Main extends PM {
537
565
  return page;
538
566
  });
539
567
  };
540
- this.receiveFeatures = (features, destFolder) => {
568
+ this.receiveFeatures = (features, destFolder, srcTest) => {
569
+ const featureDestination = path.resolve(process.cwd(), "docs", "features", "strings", srcTest.split(".").slice(0, -1).join(".") + ".features.txt");
541
570
  features
542
571
  .reduce(async (mm, featureStringKey) => {
543
572
  const accum = await mm;
@@ -564,24 +593,33 @@ export class PM_Main extends PM {
564
593
  // console.log("Symlink created successfully");
565
594
  }
566
595
  });
567
- accum.push(newPath);
596
+ accum.files.push(newPath);
568
597
  }
569
598
  else if (u.protocol === "http:" || u.protocol === "https:") {
570
599
  const newPath = `${process.cwd()}/docs/features/external${u.hostname}${u.pathname}`;
571
600
  const body = await this.configs.featureIngestor(featureStringKey);
572
601
  writeFileAndCreateDir(newPath, body);
573
- accum.push(newPath);
602
+ accum.files.push(newPath);
574
603
  }
575
604
  }
576
605
  else {
577
- const newPath = `${process.cwd()}/docs/features/plain/${await sha256(featureStringKey)}`;
578
- writeFileAndCreateDir(newPath, featureStringKey);
579
- accum.push(newPath);
606
+ await fs.promises.mkdir(path.dirname(featureDestination), {
607
+ recursive: true,
608
+ });
609
+ // const newPath = `${process.cwd()}/docs/features/plain/${await sha256(
610
+ // featureStringKey
611
+ // )}`;
612
+ // writeFileAndCreateDir(
613
+ // `${featureDestination}/${await sha256(featureStringKey)}`,
614
+ // featureStringKey
615
+ // );
616
+ accum.strings.push(featureStringKey);
580
617
  }
581
618
  return accum;
582
- }, Promise.resolve([]))
583
- .then((features) => {
584
- fs.writeFileSync(`${destFolder}/featurePrompt.txt`, features
619
+ }, Promise.resolve({ files: [], strings: [] }))
620
+ .then(({ files, strings }) => {
621
+ // writeFileAndCreateDir(`${featureDestination}`, JSON.stringify(strings));
622
+ fs.writeFileSync(`${destFolder}/featurePrompt.txt`, files
585
623
  .map((f) => {
586
624
  return `/read ${f}`;
587
625
  })
@@ -595,6 +633,33 @@ export class PM_Main extends PM {
595
633
  this.configs.ports.forEach((element) => {
596
634
  this.ports[element] = "true"; // set ports as open
597
635
  });
636
+ globalThis["waitForSelector"] = async (pageKey, sel) => {
637
+ console.log("waitForSelector", pageKey, sel);
638
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageKey);
639
+ await (page === null || page === void 0 ? void 0 : page.waitForSelector(sel));
640
+ };
641
+ globalThis["screencastStop"] = async (path) => {
642
+ return recorders[path].stop();
643
+ };
644
+ globalThis["closePage"] = async (pageKey) => {
645
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageKey);
646
+ return page.close();
647
+ };
648
+ // globalThis["closePage"] = (p) => {
649
+ // console.log("closePage", p);
650
+ // return p.close();
651
+ // };
652
+ globalThis["goto"] = async (pageKey, url) => {
653
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageKey);
654
+ await (page === null || page === void 0 ? void 0 : page.goto(url));
655
+ return;
656
+ };
657
+ globalThis["newPage"] = () => {
658
+ return this.browser.newPage();
659
+ };
660
+ globalThis["pages"] = () => {
661
+ return this.browser.pages();
662
+ };
598
663
  globalThis["mkdirSync"] = (fp) => {
599
664
  if (!fs.existsSync(fp)) {
600
665
  return fs.mkdirSync(fp, {
@@ -634,7 +699,31 @@ export class PM_Main extends PM {
634
699
  globalThis["end"] = (uid) => {
635
700
  fileStreams3[uid].end();
636
701
  };
637
- globalThis["customScreenShot"] = async (opts, page) => {
702
+ // async (ssOpts: ScreenshotOptions, testName: string) => {
703
+ // const p = ssOpts.path as string;
704
+ // const dir = path.dirname(p);
705
+ // fs.mkdirSync(dir, {
706
+ // recursive: true,
707
+ // });
708
+ // if (!files[testName]) {
709
+ // files[testName] = new Set();
710
+ // }
711
+ // files[testName].add(ssOpts.path as string);
712
+ // const sPromise = page.screenshot({
713
+ // ...ssOpts,
714
+ // path: p,
715
+ // });
716
+ // if (!screenshots[testName]) {
717
+ // screenshots[testName] = [];
718
+ // }
719
+ // screenshots[testName].push(sPromise);
720
+ // // sPromise.then(())
721
+ // await sPromise;
722
+ // return sPromise;
723
+ // // page.evaluate(`window["screenshot done"]`);
724
+ // };
725
+ globalThis["customScreenShot"] = async (opts, pageKey, testName) => {
726
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageKey);
638
727
  const p = opts.path;
639
728
  const dir = path.dirname(p);
640
729
  fs.mkdirSync(dir, {
@@ -652,6 +741,17 @@ export class PM_Main extends PM {
652
741
  await sPromise;
653
742
  return sPromise;
654
743
  };
744
+ globalThis["screencast"] = async (opts, pageKey) => {
745
+ const page = (await this.browser.pages()).find((p) => p.mainFrame()._id === pageKey);
746
+ const p = opts.path;
747
+ const dir = path.dirname(p);
748
+ fs.mkdirSync(dir, {
749
+ recursive: true,
750
+ });
751
+ const recorder = await (page === null || page === void 0 ? void 0 : page.screencast(Object.assign(Object.assign({}, opts), { path: p })));
752
+ recorders[opts.path] = recorder;
753
+ return opts.path;
754
+ };
655
755
  // globalThis["customclose"] = (p: string, testName: string) => {
656
756
  // if (!files[testName]) {
657
757
  // files[testName] = new Set();
@@ -663,13 +763,28 @@ export class PM_Main extends PM {
663
763
  // delete files[testName];
664
764
  // };
665
765
  }
766
+ customclose() {
767
+ throw new Error("Method not implemented.");
768
+ }
769
+ waitForSelector(p, s) {
770
+ throw new Error("Method not implemented.");
771
+ }
772
+ closePage(p) {
773
+ throw new Error("Method not implemented.");
774
+ }
775
+ newPage() {
776
+ throw new Error("Method not implemented.");
777
+ }
778
+ goto(p, url) {
779
+ throw new Error("Method not implemented.");
780
+ }
666
781
  $(selector) {
667
782
  throw new Error("Method not implemented.");
668
783
  }
669
784
  screencast(opts) {
670
785
  throw new Error("Method not implemented.");
671
786
  }
672
- customScreenShot(opts) {
787
+ customScreenShot(opts, cdpPage) {
673
788
  throw new Error("Method not implemented.");
674
789
  }
675
790
  end(accessObject) {
@@ -754,6 +869,9 @@ export class PM_Main extends PM {
754
869
  isDisabled(selector) {
755
870
  throw new Error("Method not implemented.");
756
871
  }
872
+ screencastStop(s) {
873
+ throw new Error("Method not implemented.");
874
+ }
757
875
  ////////////////////////////////////////////////////////////////////////////////
758
876
  async startPuppeteer(options, destfolder) {
759
877
  this.browser = (await puppeteer.launch(options));
@@ -769,7 +887,7 @@ async function writeFileAndCreateDir(filePath, data) {
769
887
  const dirPath = path.dirname(filePath);
770
888
  try {
771
889
  await fs.promises.mkdir(dirPath, { recursive: true });
772
- await fs.promises.writeFile(filePath, data);
890
+ await fs.appendFileSync(filePath, data);
773
891
  }
774
892
  catch (error) {
775
893
  console.error(`Error writing file: ${error}`);
@@ -8,10 +8,19 @@ export class PM_Node extends PM {
8
8
  this.server = {};
9
9
  this.testResourceConfiguration = t;
10
10
  }
11
- $(selector) {
12
- throw new Error("Method not implemented.");
11
+ waitForSelector(p, s) {
12
+ return globalThis["waitForSelector"](p, s);
13
+ }
14
+ closePage(p) {
15
+ return globalThis["closePage"](p);
16
+ }
17
+ goto(cdpPage, url) {
18
+ return globalThis["goto"](cdpPage.mainFrame()._id, url);
13
19
  }
14
- screencast(opts) {
20
+ newPage() {
21
+ return globalThis["newPage"]();
22
+ }
23
+ $(selector) {
15
24
  throw new Error("Method not implemented.");
16
25
  }
17
26
  isDisabled(selector) {
@@ -35,8 +44,14 @@ export class PM_Node extends PM {
35
44
  click(selector) {
36
45
  return globalThis["click"](selector);
37
46
  }
38
- customScreenShot(opts) {
39
- return globalThis["customScreenShot"](opts);
47
+ screencast(opts, page) {
48
+ return globalThis["screencast"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), page.mainFrame()._id, this.testResourceConfiguration.name);
49
+ }
50
+ screencastStop(p) {
51
+ return globalThis["screencastStop"](p);
52
+ }
53
+ customScreenShot(opts, cdpPage) {
54
+ return globalThis["customScreenShot"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), cdpPage.mainFrame()._id, this.testResourceConfiguration.name);
40
55
  }
41
56
  existsSync(destFolder) {
42
57
  return globalThis["existsSync"](this.testResourceConfiguration.fs + "/" + destFolder);
@@ -5,11 +5,26 @@ export class PM_Web extends PM {
5
5
  this.server = {};
6
6
  this.testResourceConfiguration = t;
7
7
  }
8
- $(selector) {
9
- return window["$"](selector);
8
+ waitForSelector(p, s) {
9
+ return window["waitForSelector"](p, s);
10
10
  }
11
11
  screencast(opts) {
12
- throw new Error("Method not implemented.");
12
+ return window["screencast"](Object.assign(Object.assign({}, opts), { path: this.testResourceConfiguration.fs + "/" + opts.path }), this.testResourceConfiguration.name);
13
+ }
14
+ screencastStop(recorder) {
15
+ return window["screencastStop"](recorder);
16
+ }
17
+ closePage(p) {
18
+ return window["closePage"](p);
19
+ }
20
+ goto(p, url) {
21
+ return window["goto"](p, url);
22
+ }
23
+ newPage() {
24
+ return window["newPage"]();
25
+ }
26
+ $(selector) {
27
+ return window["$"](selector);
13
28
  }
14
29
  isDisabled(selector) {
15
30
  return window["isDisabled"](selector);
@@ -38,7 +53,7 @@ export class PM_Web extends PM {
38
53
  existsSync(destFolder) {
39
54
  return window["existsSync"](destFolder);
40
55
  }
41
- mkdirSync() {
56
+ mkdirSync(x) {
42
57
  return window["mkdirSync"](this.testResourceConfiguration.fs + "/");
43
58
  }
44
59
  write(writeObject, contents) {
@@ -1,10 +1,5 @@
1
1
  import Testeranto from "../../../Node.js";
2
2
  import { testInterface as baseInterface, } from "./index.js";
3
3
  export default (testImplementations, testSpecifications, testInput, testInterface = baseInterface) => {
4
- return Testeranto(testInput, testSpecifications, testImplementations, testInterface
5
- // {
6
- // ...baseInterface,
7
- // ...testInterface,
8
- // }
9
- );
4
+ return Testeranto(testInput, testSpecifications, testImplementations, testInterface);
10
5
  };