testeranto 0.135.0 → 0.140.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 (187) hide show
  1. package/.aider.chat.history.md +13976 -0
  2. package/.aider.input.history +530 -0
  3. package/.aider.tags.cache.v3/{d8/b0/a8966fcd65890fd9f70d7afe8141.val → bd/91/b71f967fd074cf4b757081b429b7.val} +0 -0
  4. package/.aider.tags.cache.v3/cache.db +0 -0
  5. package/.aider.tags.cache.v3/{8e/ec/2d4659a1589a0187a757ab1cbefa.val → fb/96/b0f91c7e75e08fc5a6907633cf99.val} +0 -0
  6. package/README.md +28 -135
  7. package/bundle.js +1 -1
  8. package/dist/common/src/Init.js +4 -1
  9. package/dist/common/src/Node.js +1 -1
  10. package/dist/common/src/PM/__tests__/nodeSidecar.testeranto.js +2 -2
  11. package/dist/common/src/Web.js +2 -2
  12. package/dist/common/src/build.js +7 -73
  13. package/dist/common/src/defaultConfig.js +0 -1
  14. package/dist/common/src/lib/abstractBase.js +2 -0
  15. package/dist/common/src/lib/basebuilder.js +4 -0
  16. package/dist/common/src/lib/core.js +2 -0
  17. package/dist/common/src/run.js +1 -1
  18. package/dist/common/src/utils/buildTemplates.js +88 -0
  19. package/dist/common/tsconfig.common.tsbuildinfo +1 -1
  20. package/dist/module/src/Init.js +4 -1
  21. package/dist/module/src/Node.js +1 -1
  22. package/dist/module/src/PM/__tests__/nodeSidecar.testeranto.js +2 -2
  23. package/dist/module/src/Project.js +41 -47
  24. package/dist/module/src/TestReport.js +34 -31
  25. package/dist/module/src/Web.js +2 -2
  26. package/dist/module/src/build.js +7 -73
  27. package/dist/module/src/defaultConfig.js +0 -1
  28. package/dist/module/src/lib/abstractBase.js +2 -0
  29. package/dist/module/src/lib/basebuilder.js +4 -0
  30. package/dist/module/src/lib/core.js +2 -0
  31. package/dist/module/src/run.js +1 -1
  32. package/dist/module/src/utils/buildTemplates.js +82 -0
  33. package/dist/module/tsconfig.module.tsbuildinfo +1 -1
  34. package/dist/prebuild/Project.js +62 -13
  35. package/dist/prebuild/TestReport.js +39 -18
  36. package/dist/prebuild/build.mjs +96 -73
  37. package/dist/prebuild/init-docs.mjs +0 -4
  38. package/dist/tsconfig.tsbuildinfo +1 -0
  39. package/dist/types/src/CoreTypes.d.ts +5 -3
  40. package/dist/types/src/Node.d.ts +3 -3
  41. package/dist/types/src/PM/__tests__/nodeSidecar.testeranto.d.ts +17 -1
  42. package/dist/types/src/PM/__tests__/pureSidecar.testeranto.d.ts +17 -1
  43. package/dist/types/src/PM/__tests__/webSidecar.testeranto.d.ts +17 -1
  44. package/dist/types/src/PM/nodeSidecar.d.ts +2 -2
  45. package/dist/types/src/Pure.d.ts +3 -3
  46. package/dist/types/src/Types.d.ts +18 -14
  47. package/dist/types/src/Web.d.ts +3 -3
  48. package/dist/types/src/lib/abstractBase.d.ts +8 -8
  49. package/dist/types/src/lib/basebuilder.d.ts +3 -3
  50. package/dist/types/src/lib/classBuilder.d.ts +2 -2
  51. package/dist/types/src/lib/core.d.ts +2 -2
  52. package/dist/types/src/lib/index.d.ts +7 -6
  53. package/dist/types/src/lib/types.d.ts +8 -8
  54. package/dist/types/src/mothership/test.d.ts +20 -1
  55. package/dist/types/src/utils/buildTemplates.d.ts +3 -0
  56. package/dist/types/tsconfig.types.tsbuildinfo +1 -1
  57. package/docs/index.md +344 -54
  58. package/docs/style.md +116 -0
  59. package/docs.html +537 -0
  60. package/example.css +351 -0
  61. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Black.ttf +0 -0
  62. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Bold.ttf +0 -0
  63. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-ExtraBold.ttf +0 -0
  64. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Light.ttf +0 -0
  65. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Medium.ttf +0 -0
  66. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Regular.ttf +0 -0
  67. package/fonts/M_PLUS_Rounded_1c/MPLUSRounded1c-Thin.ttf +0 -0
  68. package/fonts/M_PLUS_Rounded_1c/OFL.txt +91 -0
  69. package/index.html +245 -24
  70. package/logo.svg +72 -0
  71. package/package.json +6 -2
  72. package/scripts/compile-docs.js +89 -0
  73. package/src/CoreTypes.ts +24 -43
  74. package/src/Init.ts +4 -4
  75. package/src/Node.ts +6 -20
  76. package/src/PM/__tests__/nodeSidecar.testeranto.ts +13 -20
  77. package/src/PM/__tests__/pureSidecar.testeranto.ts +8 -15
  78. package/src/PM/__tests__/webSidecar.testeranto.ts +8 -15
  79. package/src/PM/nodeSidecar.ts +2 -2
  80. package/src/PM/pure.ts +0 -4
  81. package/src/Project.tsx +289 -292
  82. package/src/Pure.ts +13 -14
  83. package/src/PureSidecar.ts +1 -0
  84. package/src/TestReport.tsx +179 -165
  85. package/src/Types.ts +29 -144
  86. package/src/Web.ts +15 -11
  87. package/src/build.ts +22 -73
  88. package/src/defaultConfig.ts +2 -1
  89. package/src/lib/BaseSuite.test.ts +457 -0
  90. package/src/lib/BaseSuite.ts +155 -0
  91. package/src/lib/abstractBase.ts +7 -162
  92. package/src/lib/basebuilder.ts +11 -11
  93. package/src/lib/classBuilder.ts +8 -3
  94. package/src/lib/core.ts +12 -12
  95. package/src/lib/index.ts +21 -24
  96. package/src/lib/types.ts +23 -9
  97. package/src/mothership/test.ts +13 -10
  98. package/src/run.ts +1 -1
  99. package/src/style.css +1 -1
  100. package/src/utils/buildTemplates.ts +88 -0
  101. package/style.css +496 -0
  102. package/testeranto/bundles/node/{mothership/chunk-V2EQEXU2.mjs → allTests/chunk-4PJCC2XT.mjs} +66 -59
  103. package/testeranto/bundles/node/allTests/metafile.json +4151 -0
  104. package/testeranto/bundles/node/allTests/src/PM/__tests__/nodeSidecar.testeranto.mjs +187 -0
  105. package/testeranto/bundles/node/{mothership → allTests}/src/PM/__tests__/pureSidecar.testeranto.mjs +1 -1
  106. package/testeranto/bundles/node/{mothership → allTests}/src/PM/__tests__/webSidecar.testeranto.mjs +1 -1
  107. package/testeranto/bundles/node/allTests/src/lib/BaseSuite.test.mjs +305 -0
  108. package/testeranto/bundles/node/{mothership → allTests}/src/mothership/test.mjs +1 -1
  109. package/testeranto/dev.html +29 -0
  110. package/testeranto/index.html +28 -27
  111. package/testeranto/reports/allTests/config.json +57 -0
  112. package/testeranto/reports/{mothership/index.html → allTests/dev.html} +2 -0
  113. package/testeranto/reports/allTests/index.html +26 -0
  114. package/testeranto/reports/{mothership/src/PM/__tests__/sidecar.testeranto/node/index.html → allTests/src/PM/__tests__/nodeSidecar.testeranto/node/dev.html} +4 -3
  115. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/index.html +21 -0
  116. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/lint_errors.json +80 -0
  117. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/message +1 -0
  118. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/prompt.txt +8 -0
  119. package/testeranto/reports/allTests/src/PM/__tests__/nodeSidecar.testeranto/node/type_errors.txt +28 -0
  120. package/testeranto/reports/{mothership/src/PM/__tests__/webSidecar.testeranto/node/index.html → allTests/src/PM/__tests__/pureSidecar.testeranto/node/dev.html} +4 -3
  121. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/index.html +21 -0
  122. package/testeranto/reports/{mothership → allTests}/src/PM/__tests__/pureSidecar.testeranto/node/lint_errors.json +12 -12
  123. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/message +1 -0
  124. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/prompt.txt +8 -0
  125. package/testeranto/reports/allTests/src/PM/__tests__/pureSidecar.testeranto/node/type_errors.txt +32 -0
  126. package/testeranto/reports/{mothership/src/PM/__tests__/nodeSidecar.testeranto/node/index.html → allTests/src/PM/__tests__/webSidecar.testeranto/node/dev.html} +4 -3
  127. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/index.html +21 -0
  128. package/testeranto/reports/{mothership → allTests}/src/PM/__tests__/webSidecar.testeranto/node/lint_errors.json +12 -12
  129. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/message +1 -0
  130. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/prompt.txt +8 -0
  131. package/testeranto/reports/allTests/src/PM/__tests__/webSidecar.testeranto/node/type_errors.txt +32 -0
  132. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/console_log.txt +35 -0
  133. package/testeranto/reports/{mothership/src/PM/__tests__/pureSidecar.testeranto/node/index.html → allTests/src/lib/BaseSuite.test/node/dev.html} +4 -3
  134. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/index.html +21 -0
  135. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/lint_errors.json +608 -0
  136. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/message +1 -0
  137. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/prompt.txt +7 -0
  138. package/testeranto/reports/allTests/src/lib/BaseSuite.test/node/type_errors.txt +68 -0
  139. package/testeranto/reports/allTests/src/mothership/test/node/dev.html +21 -0
  140. package/testeranto/reports/allTests/src/mothership/test/node/index.html +21 -0
  141. package/testeranto/reports/allTests/src/mothership/test/node/message +1 -0
  142. package/testeranto/reports/allTests/src/mothership/test/node/prompt.txt +8 -0
  143. package/testeranto/reports/allTests/src/mothership/test/node/type_errors.txt +24 -0
  144. package/testeranto/reports/allTests/summary.json +37 -0
  145. package/testeranto.config.ts +16 -26
  146. package/tsc.log +66 -69
  147. package/dist/common/src/SP__Polygon.test.js +0 -10
  148. package/dist/module/src/ReportClient.js +0 -132
  149. package/dist/module/src/SP__Polygon.test.js +0 -8
  150. package/dist/prebuild/ReportClient.js +0 -3
  151. package/dist/types/src/SP__Polygon.test.d.ts +0 -1
  152. package/src/ReportClient.tsx +0 -164
  153. package/src/SP__Polygon.test.ts +0 -13
  154. package/testeranto/ReportClient.css +0 -11367
  155. package/testeranto/ReportClient.js +0 -24641
  156. package/testeranto/bundles/node/mothership/metafile.json +0 -389
  157. package/testeranto/bundles/node/mothership/src/PM/__tests__/nodeSidecar.testeranto.mjs +0 -1219
  158. package/testeranto/bundles/node/mothership/src/PM/__tests__/sidecar.testeranto.mjs +0 -1199
  159. package/testeranto/reports/mothership/config.json +0 -25
  160. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/console_log.txt +0 -0
  161. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/lint_errors.json +0 -1564
  162. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/prompt.txt +0 -22
  163. package/testeranto/reports/mothership/src/PM/__tests__/nodeSidecar.testeranto/node/type_errors.txt +0 -35
  164. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/prompt.txt +0 -12
  165. package/testeranto/reports/mothership/src/PM/__tests__/pureSidecar.testeranto/node/type_errors.txt +0 -26
  166. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/bdd_errors.txt +0 -1
  167. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/console_log.txt +0 -0
  168. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/lint_errors.json +0 -1564
  169. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/log.txt +0 -0
  170. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/prompt.txt +0 -22
  171. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/tests.json +0 -56
  172. package/testeranto/reports/mothership/src/PM/__tests__/sidecar.testeranto/node/type_errors.txt +0 -29
  173. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/prompt.txt +0 -12
  174. package/testeranto/reports/mothership/src/PM/__tests__/webSidecar.testeranto/node/type_errors.txt +0 -26
  175. package/testeranto/reports/mothership/src/mothership/test/node/bdd_errors.txt +0 -1
  176. package/testeranto/reports/mothership/src/mothership/test/node/console_log.txt +0 -4
  177. package/testeranto/reports/mothership/src/mothership/test/node/index.html +0 -20
  178. package/testeranto/reports/mothership/src/mothership/test/node/log.txt +0 -0
  179. package/testeranto/reports/mothership/src/mothership/test/node/prompt.txt +0 -12
  180. package/testeranto/reports/mothership/src/mothership/test/node/tests.json +0 -24
  181. package/testeranto/reports/mothership/src/mothership/test/node/type_errors.txt +0 -18
  182. package/testeranto/reports/mothership/summary.json +0 -9
  183. /package/testeranto/bundles/node/{mothership → allTests}/chunk-PG6KUKNP.mjs +0 -0
  184. /package/testeranto/bundles/pure/{mothership → allTests}/metafile.json +0 -0
  185. /package/testeranto/bundles/web/{mothership → allTests}/metafile.json +0 -0
  186. /package/testeranto/reports/{mothership/src/PM/__tests__/nodeSidecar.testeranto → allTests/src/lib/BaseSuite.test}/node/log.txt +0 -0
  187. /package/testeranto/reports/{mothership → allTests}/src/mothership/test/node/lint_errors.json +0 -0
@@ -20,7 +20,10 @@ export default async () => {
20
20
  }
21
21
  });
22
22
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.js`, `testeranto/Project.js`);
23
- fs.copyFileSync(`node_modules/testeranto/dist/prebuild/ReportClient.js`, `testeranto/ReportClient.js`);
23
+ // fs.copyFileSync(
24
+ // `node_modules/testeranto/dist/prebuild/ReportClient.js`,
25
+ // `testeranto/ReportClient.js`
26
+ // );
24
27
  fs.copyFileSync(`node_modules/testeranto/dist/prebuild/Project.css`, `testeranto/Project.css`);
25
28
  // fs.copyFileSync(
26
29
  // `node_modules/testeranto/dist/prebuild/ReportClient.css`,
@@ -44,6 +44,6 @@ const testeranto = async (input, testSpecification, testImplementation, testInte
44
44
  // });
45
45
  // });
46
46
  }
47
- return t;
47
+ // return t;
48
48
  };
49
49
  export default testeranto;
@@ -36,7 +36,7 @@ const implementation = {
36
36
  return mockProcess;
37
37
  },
38
38
  addListener: () => mockProcess,
39
- removeListener: () => mockProcess
39
+ removeListener: () => mockProcess,
40
40
  };
41
41
  process = mockProcess;
42
42
  let writeCalled = false;
@@ -58,7 +58,7 @@ const implementation = {
58
58
  removeListener: () => {
59
59
  removeListenerCalled = true;
60
60
  return mockProcess;
61
- }
61
+ },
62
62
  };
63
63
  process = mockProcess;
64
64
  await sidecar.send("test-command", "test");
@@ -3,23 +3,10 @@ import ReactDom from "react-dom/client";
3
3
  import React, { useEffect, useState } from "react";
4
4
  import { Col, Nav, Row, Tab, Table } from "react-bootstrap";
5
5
  import { Footer } from "./Footer";
6
- import 'bootstrap/dist/css/bootstrap.min.css';
6
+ import "bootstrap/dist/css/bootstrap.min.css";
7
7
  import "./style.css";
8
- // type ICollation = {
9
- // name: string;
10
- // runTime: IRunTime;
11
- // tr: {
12
- // ports: number;
13
- // };
14
- // sidecars: ITestTypes[];
15
- // staticAnalysis: number | "?";
16
- // typeErrors: number | "?";
17
- // bddErrors: number | "?";
18
- // prompt: string | "?";
19
- // };
20
- // type ICollations = ICollation[];
21
8
  const ExternalFeatures = ({ summary }) => {
22
- return React.createElement("div", null,
9
+ return (React.createElement("div", null,
23
10
  React.createElement(Row, null,
24
11
  React.createElement(Tab.Container, { id: "external-features-tab-container" },
25
12
  React.createElement(Row, null,
@@ -37,10 +24,10 @@ const ExternalFeatures = ({ summary }) => {
37
24
  React.createElement(Col, { sm: 3 },
38
25
  React.createElement(Nav, { variant: "pills", className: "flex-column" })),
39
26
  React.createElement(Col, { sm: 9 },
40
- React.createElement(Tab.Content, null)))))))))));
27
+ React.createElement(Tab.Content, null))))))))))));
41
28
  };
42
29
  const Features = ({ summary }) => {
43
- return React.createElement("div", null,
30
+ return (React.createElement("div", null,
44
31
  React.createElement(Table, { striped: true, bordered: true, hover: true },
45
32
  React.createElement("thead", null,
46
33
  React.createElement("tr", null,
@@ -51,28 +38,31 @@ const Features = ({ summary }) => {
51
38
  React.createElement("th", null, "Type errors"),
52
39
  React.createElement("th", null, "prompt"))),
53
40
  React.createElement("tbody", null, ...summary.map((s) => {
54
- return React.createElement(React.Fragment, null,
41
+ return (React.createElement(React.Fragment, null,
55
42
  React.createElement("tr", null,
56
43
  React.createElement("th", null, s[0])),
57
44
  ...s[1].tests.map((t) => {
58
- const x = `${s[0]}/${t[0].split(".").slice(0, -1).join(".")}/${t[1]}`;
45
+ const x = `${s[0]}/${t[0]
46
+ .split(".")
47
+ .slice(0, -1)
48
+ .join(".")}/${t[1]}`;
59
49
  const y = s[2][t[0]];
60
- return React.createElement("tr", null,
50
+ return (React.createElement("tr", null,
61
51
  React.createElement("td", null, t[0]),
62
52
  React.createElement("td", null, t[1]),
63
53
  React.createElement("td", null,
64
- React.createElement("a", { href: `./reports/${x}/index.html` }, y.runTimeError)),
54
+ React.createElement("a", { href: `./asdasasdasdd/reports/${x}/index.html` }, y.runTimeError)),
65
55
  React.createElement("td", null,
66
- React.createElement("a", { href: `./reports/${x}/lint_errors.json` }, y.staticErrors)),
56
+ React.createElement("a", { href: `./testeasdqqweqweranto/reports/${x}/lint_errors.json` }, y.staticErrors)),
67
57
  React.createElement("td", null,
68
- React.createElement("a", { href: `./reports/${x}/type_errors.txt` }, y.typeErrors)),
58
+ React.createElement("a", { href: `./testezxcdcdfranto/reports/${x}/type_errors.txt` }, y.typeErrors)),
69
59
  React.createElement("td", null,
70
- React.createElement("pre", null, s[2][t[0]].prompt)));
71
- }));
72
- }))));
60
+ React.createElement("pre", null, s[2][t[0]].prompt))));
61
+ })));
62
+ })))));
73
63
  };
74
64
  const Docs = ({ summary }) => {
75
- return React.createElement("div", null,
65
+ return (React.createElement("div", null,
76
66
  React.createElement(Tab.Container, { id: "DocsPane-tabs", defaultActiveKey: "external" },
77
67
  React.createElement(Row, null,
78
68
  React.createElement(Col, { sm: 12 },
@@ -88,12 +78,12 @@ const Docs = ({ summary }) => {
88
78
  React.createElement(Tab.Pane, { eventKey: `markdown` },
89
79
  React.createElement(ExternalFeatures, { summary: summary })),
90
80
  React.createElement(Tab.Pane, { eventKey: `string` },
91
- React.createElement(ExternalFeatures, { summary: summary })))))));
81
+ React.createElement(ExternalFeatures, { summary: summary }))))))));
92
82
  };
93
83
  const BigBoard = () => {
94
- const bigConfigElement = document.getElementById('bigConfig');
84
+ const bigConfigElement = document.getElementById("bigConfig");
95
85
  if (!bigConfigElement)
96
- throw new Error('bigConfig element not found');
86
+ throw new Error("bigConfig element not found");
97
87
  const projects = JSON.parse(bigConfigElement.innerHTML);
98
88
  const [summary, setSummary] = useState();
99
89
  useEffect(() => {
@@ -101,8 +91,8 @@ const BigBoard = () => {
101
91
  const x = projects.map(async (p) => {
102
92
  return [
103
93
  p,
104
- (await (await fetch(`./reports/${p}/config.json`)).json()),
105
- (await (await fetch(`./reports/${p}/summary.json`)).json())
94
+ (await (await fetch(`./testeranto/reports/${p}/config.json`)).json()),
95
+ (await (await fetch(`./testeranto/reports/${p}/summary.json`)).json()),
106
96
  ];
107
97
  });
108
98
  Promise.all(x).then((v) => {
@@ -128,16 +118,17 @@ const BigBoard = () => {
128
118
  // // } as ICollation
129
119
  // // });
130
120
  function copyToClipboard(text) {
131
- navigator.clipboard.writeText(text)
121
+ navigator.clipboard
122
+ .writeText(text)
132
123
  .then(() => {
133
- console.log('Text copied to clipboard');
124
+ console.log("Text copied to clipboard");
134
125
  })
135
- .catch(err => {
136
- console.error('Error copying text: ', err);
126
+ .catch((err) => {
127
+ console.error("Error copying text: ", err);
137
128
  });
138
129
  }
139
- return React.createElement("div", null,
140
- " ",
130
+ return (React.createElement("div", null,
131
+ " ",
141
132
  React.createElement(Tab.Container, { id: "TestPane-tabs", defaultActiveKey: "tests" },
142
133
  React.createElement(Row, null,
143
134
  React.createElement(Col, { sm: 12 },
@@ -160,21 +151,24 @@ const BigBoard = () => {
160
151
  React.createElement("th", null, "prompt"),
161
152
  React.createElement("th", null, "failing features"))),
162
153
  React.createElement("tbody", null, ...summary.map((s) => {
163
- return React.createElement(React.Fragment, null,
154
+ return (React.createElement(React.Fragment, null,
164
155
  React.createElement("tr", null,
165
156
  React.createElement("th", null, s[0])),
166
157
  ...s[1].tests.map((t) => {
167
- const x = `${s[0]}/${t[0].split(".").slice(0, -1).join(".")}/${t[1]}`;
158
+ const x = `${s[0]}/${t[0]
159
+ .split(".")
160
+ .slice(0, -1)
161
+ .join(".")}/${t[1]}`;
168
162
  const y = s[2][t[0]];
169
- return React.createElement("tr", null,
163
+ return (React.createElement("tr", null,
170
164
  React.createElement("td", null, t[0]),
171
165
  React.createElement("td", null, t[1]),
172
166
  React.createElement("td", null,
173
- React.createElement("a", { href: `./reports/${x}/index.html` }, y.runTimeError)),
167
+ React.createElement("a", { href: `./testeranto/reports/${x}/index.html` }, y.runTimeError)),
174
168
  React.createElement("td", null,
175
- React.createElement("a", { href: `./reports/${x}/lint_errors.json` }, y.staticErrors)),
169
+ React.createElement("a", { href: `./testeranto/reports/${x}/lint_errors.json` }, y.staticErrors)),
176
170
  React.createElement("td", null,
177
- React.createElement("a", { href: `./reports/${x}/type_errors.txt` }, y.typeErrors)),
171
+ React.createElement("a", { href: `./testeranto/reports/${x}/type_errors.txt` }, y.typeErrors)),
178
172
  React.createElement("td", null,
179
173
  React.createElement("pre", null,
180
174
  React.createElement("button", { onClick: () => {
@@ -182,14 +176,14 @@ const BigBoard = () => {
182
176
  } }, "copy"))),
183
177
  React.createElement("td", null,
184
178
  React.createElement("pre", null,
185
- React.createElement("code", null, JSON.stringify(y.failingFeatures, null, 2)))));
186
- }));
179
+ React.createElement("code", null, JSON.stringify(y.failingFeatures, null, 2))))));
180
+ })));
187
181
  })))),
188
182
  React.createElement(Tab.Pane, { eventKey: `features` },
189
183
  React.createElement(Features, { summary: summary })),
190
184
  React.createElement(Tab.Pane, { eventKey: `docs` },
191
185
  React.createElement(Docs, { summary: summary })))))),
192
- React.createElement(Footer, null));
186
+ React.createElement(Footer, null)));
193
187
  };
194
188
  document.addEventListener("DOMContentLoaded", function () {
195
189
  const elem = document.getElementById("root");
@@ -1,46 +1,46 @@
1
1
  import ReactDom from "react-dom/client";
2
2
  import React, { useEffect, useState } from "react";
3
3
  import { Col, Nav, Row, Tab } from "react-bootstrap";
4
- import 'bootstrap/dist/css/bootstrap.min.css';
4
+ import "bootstrap/dist/css/bootstrap.min.css";
5
5
  import "./style.css";
6
6
  import { Footer } from "./Footer";
7
- const StepPane = ({ step }) => {
8
- return React.createElement("div", null,
7
+ const StepPane = ({ step, }) => {
8
+ return (React.createElement("div", null,
9
9
  React.createElement("pre", null,
10
- React.createElement("code", null, JSON.stringify(step, null, 2))));
10
+ React.createElement("code", null, JSON.stringify(step, null, 2)))));
11
11
  };
12
- const TestPane = ({ given }) => {
13
- return React.createElement("div", null,
14
- " ",
12
+ const TestPane = ({ given, }) => {
13
+ return (React.createElement("div", null,
14
+ " ",
15
15
  React.createElement(Tab.Container, { id: "TestPane-tabs", defaultActiveKey: "first" },
16
16
  React.createElement(Row, null,
17
17
  React.createElement(Col, { sm: 3 },
18
18
  React.createElement(Nav, { variant: "pills", className: "flex-column" },
19
19
  React.createElement(Nav.Item, null,
20
20
  React.createElement(Nav.Link, { eventKey: `bdd-features` }, "features"),
21
- ...given.whens.map((w, ndx) => React.createElement(Nav.Link, { eventKey: `bdd-when-${ndx}` },
21
+ ...given.whens.map((w, ndx) => (React.createElement(Nav.Link, { eventKey: `bdd-when-${ndx}` },
22
22
  "When ",
23
23
  w.name,
24
24
  " ",
25
- w.error && "!")),
26
- ...given.thens.map((t, ndx) => React.createElement(Nav.Link, { eventKey: `bdd-then-${ndx}` },
25
+ w.error && "!"))),
26
+ ...given.thens.map((t, ndx) => (React.createElement(Nav.Link, { eventKey: `bdd-then-${ndx}` },
27
27
  "Then ",
28
28
  t.name,
29
29
  " ",
30
- t.error && "!")),
30
+ t.error && "!"))),
31
31
  React.createElement(Nav.Link, { eventKey: `bdd-errors` }, "errors")))),
32
32
  React.createElement(Col, { sm: 6 },
33
33
  React.createElement(Tab.Content, null,
34
34
  React.createElement(Tab.Pane, { eventKey: `bdd-features` },
35
35
  React.createElement("pre", null,
36
36
  React.createElement("code", null, JSON.stringify(given.features, null, 2)))),
37
- ...given.whens.map((w, ndx) => React.createElement(Tab.Pane, { eventKey: `bdd-when-${ndx}` },
38
- React.createElement(StepPane, { step: w }))),
39
- ...given.thens.map((t, ndx) => React.createElement(Tab.Pane, { eventKey: `bdd-then-${ndx}` },
40
- React.createElement(StepPane, { step: t }))),
37
+ ...given.whens.map((w, ndx) => (React.createElement(Tab.Pane, { eventKey: `bdd-when-${ndx}` },
38
+ React.createElement(StepPane, { step: w })))),
39
+ ...given.thens.map((t, ndx) => (React.createElement(Tab.Pane, { eventKey: `bdd-then-${ndx}` },
40
+ React.createElement(StepPane, { step: t })))),
41
41
  React.createElement(Tab.Pane, { eventKey: `bdd-errors` },
42
42
  React.createElement("pre", null,
43
- React.createElement("code", null, JSON.stringify(given.error, null, 2)))))))));
43
+ React.createElement("code", null, JSON.stringify(given.error, null, 2))))))))));
44
44
  };
45
45
  const BddPage = () => {
46
46
  // const [configs, setConfigs] = useState<IBuiltConfig>();
@@ -57,20 +57,23 @@ const BddPage = () => {
57
57
  const [bddErrors, setBddErrors] = useState();
58
58
  useEffect(() => {
59
59
  (async () => {
60
- setBddErrors(await (await fetch(`tests.json`)).json());
60
+ setBddErrors(await (await fetch(`${window.location.href
61
+ .split("/")
62
+ .slice(0, -1)
63
+ .join("/")}/tests.json`)).json());
61
64
  })();
62
65
  }, []);
63
66
  const [log, setLog] = useState();
64
67
  useEffect(() => {
65
68
  (async () => {
66
- setLog(await (await fetch(`log.txt`)).text());
69
+ setLog(await (await fetch(`${window.location.href.split("/").slice(0, -1).join("/")}/log.txt`)).text());
67
70
  })();
68
71
  }, []);
69
- if (!bddErrors || !log) {
72
+ if (bddErrors === undefined || log === undefined) {
70
73
  return React.createElement("div", null, "loading...");
71
74
  }
72
- return React.createElement("div", null,
73
- " ",
75
+ return (React.createElement("div", null,
76
+ " ",
74
77
  React.createElement(Row, null,
75
78
  React.createElement(Col, { sm: 12 },
76
79
  React.createElement("h2", null, bddErrors.name))),
@@ -91,24 +94,24 @@ const BddPage = () => {
91
94
  React.createElement(Tab.Container, { id: "secondary-tab-container", defaultActiveKey: "first" },
92
95
  React.createElement(Row, null,
93
96
  React.createElement(Col, { sm: 3 },
94
- React.createElement(Nav, { variant: "pills", className: "flex-column" }, ...bddErrors.givens.map((g) => React.createElement(Nav.Item, null,
97
+ React.createElement(Nav, { variant: "pills", className: "flex-column" }, ...bddErrors.givens.map((g) => (React.createElement(Nav.Item, null,
95
98
  React.createElement(Nav.Link, { eventKey: g.key },
96
99
  g.key,
97
100
  ": Given ",
98
- g.name))))),
101
+ g.name)))))),
99
102
  React.createElement(Col, { sm: 9 },
100
- React.createElement(Tab.Content, null, ...bddErrors.givens.map((g) => React.createElement(Tab.Pane, { eventKey: g.key },
101
- React.createElement(TestPane, { given: g }))))))))))))),
103
+ React.createElement(Tab.Content, null, ...bddErrors.givens.map((g) => (React.createElement(Tab.Pane, { eventKey: g.key },
104
+ React.createElement(TestPane, { given: g })))))))))))))),
102
105
  React.createElement("div", { style: {
103
- backgroundColor: 'lightgray',
104
- margin: '0.5rem',
105
- padding: '0.5rem',
106
- position: 'fixed',
106
+ backgroundColor: "lightgray",
107
+ margin: "0.5rem",
108
+ padding: "0.5rem",
109
+ position: "fixed",
107
110
  left: 0,
108
- bottom: 0
111
+ bottom: 0,
109
112
  } },
110
113
  React.createElement("a", { href: "/" }, "\uD83C\uDFE0")),
111
- React.createElement(Footer, null));
114
+ React.createElement(Footer, null)));
112
115
  };
113
116
  document.addEventListener("DOMContentLoaded", function () {
114
117
  const elem = document.getElementById("root");
@@ -1,11 +1,11 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
3
  import { PM_Web } from "./PM/web";
2
4
  import Testeranto from "./lib/core.js";
3
5
  import { defaultTestResourceRequirement, } from "./lib/index.js";
4
6
  let errorCallback = (e) => { };
5
7
  let unhandledrejectionCallback = (event) => {
6
8
  console.log("window.addEventListener unhandledrejection", event);
7
- // cb({ error: event.reason.message });
8
- // throw event;
9
9
  };
10
10
  export class WebTesteranto extends Testeranto {
11
11
  constructor(input, testSpecification, testImplementation, testResourceRequirement, testInterface) {
@@ -10,6 +10,7 @@ import esbuildWebConfiger from "./esbuildConfigs/web.js";
10
10
  import esbuildImportConfiger from "./esbuildConfigs/pure.js";
11
11
  import webHtmlFrame from "./web.html.js";
12
12
  import { getRunnables } from "./utils.js";
13
+ import { idkPage, testReportPage, testsReportPage, } from "./utils/buildTemplates.js";
13
14
  readline.emitKeypressEvents(process.stdin);
14
15
  if (process.stdin.isTTY)
15
16
  process.stdin.setRawMode(true);
@@ -106,60 +107,11 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
106
107
  if (!fs.existsSync(`testeranto/reports/${testName}`)) {
107
108
  fs.mkdirSync(`testeranto/reports/${testName}`);
108
109
  }
109
- fs.writeFileSync(`${process.cwd()}/testeranto/reports/${testName}/index.html`, `
110
- <!DOCTYPE html>
111
- <html lang="en">
112
-
113
- <head>
114
- <meta name="description" content="Webpage description goes here" />
115
- <meta charset="utf-8" />
116
- <title>${pckge.name} - testeranto</title>
117
- <meta name="viewport" content="width=device-width, initial-scale=1" />
118
- <meta name="author" content="" />
119
-
120
- <link rel="stylesheet" href="../ReportClient.css" />
121
- <script type="module" src="../ReportClient.js"></script>
122
-
123
- </head>
124
-
125
- <body>
126
- <div id="root">
127
- react is loading
128
- </div>
129
- </body>
130
-
131
- </html>
132
- `);
110
+ fs.writeFileSync(`${process.cwd()}/testeranto/reports/${testName}/index.html`, testReportPage(pckge.name, bigConfig.reportDomain));
111
+ fs.writeFileSync(`${process.cwd()}/testeranto/reports/${testName}/dev.html`, testReportPage(pckge.name, "/"));
133
112
  fs.writeFileSync(`testeranto/reports/${testName}/config.json`, JSON.stringify(config, null, 2));
134
- fs.writeFileSync(`${process.cwd()}/testeranto/index.html`, `
135
- <!DOCTYPE html>
136
- <html lang="en">
137
-
138
- <head>
139
- <meta name="description" content="Webpage description goes here" />
140
- <meta charset="utf-8" />
141
- <title>${pckge.name} - testeranto</title>
142
- <meta name="viewport" content="width=device-width, initial-scale=1" />
143
- <meta name="author" content="" />
144
- <base href="https://adamwong246.github.io/spacetrash_v8" target="_blank">
145
-
146
- <script type="application/json" id="bigConfig">
147
- ${JSON.stringify(Object.keys(bigConfig.projects))}
148
- </script>
149
-
150
- <link rel="stylesheet" href="/reports/Project.css" />
151
- <script type="module" src="/reports/Project.js"></script>
152
-
153
- </head>
154
-
155
- <body>
156
- <div id="root">
157
- react is loading
158
- </div>
159
- </body>
160
-
161
- </html>
162
- `);
113
+ fs.writeFileSync(`${process.cwd()}/testeranto/index.html`, testsReportPage(pckge.name, bigConfig.reportDomain, bigConfig.projects));
114
+ fs.writeFileSync(`${process.cwd()}/testeranto/dev.html`, testsReportPage(pckge.name, "/", bigConfig.projects));
163
115
  Promise.resolve(Promise.all([...getSecondaryEndpointsPoints("web")].map(async (sourceFilePath) => {
164
116
  const sourceFileSplit = sourceFilePath.split("/");
165
117
  const sourceDir = sourceFileSplit.slice(0, -1);
@@ -206,26 +158,8 @@ import(process.cwd() + "/" + "testeranto.config.ts").then(async (module) => {
206
158
  .slice(0, -1)
207
159
  .join(".")}/${runtime}`;
208
160
  await fs.mkdirSync(folder, { recursive: true });
209
- fs.writeFileSync(`${folder}/index.html`, `
210
- <!DOCTYPE html>
211
- <html lang="en">
212
-
213
- <head>
214
- <meta name="description" content="Webpage description goes here" />
215
- <meta charset="utf-8" />
216
- <title>${testName} - testeranto</title>
217
- <meta name="viewport" content="width=device-width, initial-scale=1" />
218
- <meta name="author" content="" />
219
-
220
- <link rel="stylesheet" href="../../../../../../TestReport.css" />
221
- <script src="../../../../../../TestReport.js"></script>
222
-
223
- </head>
224
-
225
- <body>
226
- <div id="root"/>
227
- </body>
228
- `);
161
+ fs.writeFileSync(`${folder}/index.html`, idkPage(testName, bigConfig.reportDomain));
162
+ fs.writeFileSync(`${folder}/dev.html`, idkPage(testName, ""));
229
163
  });
230
164
  });
231
165
  [
@@ -9,7 +9,6 @@ const config = {
9
9
  nodePlugins: [],
10
10
  webPlugins: [],
11
11
  importPlugins: [],
12
- externalTests: {},
13
12
  featureIngestor: function (s) {
14
13
  throw new Error("Function not implemented.");
15
14
  },
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
3
  import { afterAllProxy, afterEachProxy, andWhenProxy, beforeAllProxy, beforeEachProxy, butThenProxy, } from "./pmProxy.js";
2
4
  export class BaseSuite {
3
5
  constructor(name, index, givens = {}, checks = []) {
@@ -1,3 +1,7 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-empty-object-type */
3
+ /* eslint-disable no-async-promise-executor */
4
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
5
  export class BaseBuilder {
2
6
  constructor(input, suitesOverrides, givenOverides, whenOverides, thenOverides, checkOverides, testResourceRequirement, testSpecification) {
3
7
  this.artifacts = [];
@@ -1,3 +1,5 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
1
3
  import { DefaultTestInterface, defaultTestResourceRequirement, } from "./index.js";
2
4
  import { BaseSuite, BaseGiven, BaseWhen, BaseThen, BaseCheck, } from "./abstractBase.js";
3
5
  import { ClassBuilder } from "./classBuilder.js";
@@ -11,7 +11,7 @@ process.stdin.on("keypress", (str, key) => {
11
11
  process.exit(-1);
12
12
  }
13
13
  });
14
- let testName = process.argv[2];
14
+ const testName = process.argv[2];
15
15
  const mode = process.argv[3];
16
16
  if (mode !== "once" && mode !== "dev") {
17
17
  console.error("the 2nd argument should be 'dev' or 'once' ");
@@ -0,0 +1,82 @@
1
+ export const testReportPage = (packageName, domain) => {
2
+ return `
3
+ <!DOCTYPE html>
4
+ <html lang="en">
5
+
6
+ <head>
7
+ <meta name="description" content="Webpage description goes here" />
8
+ <meta charset="utf-8" />
9
+ <title>${packageName} - testeranto</title>
10
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
11
+ <meta name="author" content="" />
12
+
13
+ <base href="${domain}" target="_blank">
14
+
15
+ <link rel="stylesheet" href="../ReportClient.css" />
16
+ <script type="module" src="../ReportClient.js"></script>
17
+
18
+ </head>
19
+
20
+ <body>
21
+ <div id="root">
22
+ react is loading
23
+ </div>
24
+ </body>
25
+
26
+ </html>
27
+ `;
28
+ };
29
+ export const testsReportPage = (packageName, domain, projects) => {
30
+ return `
31
+ <!DOCTYPE html>
32
+ <html lang="en">
33
+
34
+ <head>
35
+ <meta name="description" content="Webpage description goes here" />
36
+ <meta charset="utf-8" />
37
+ <title>${packageName} - testeranto</title>
38
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
39
+ <meta name="author" content="" />
40
+ <base href="${domain}" target="_blank">
41
+
42
+ <script type="application/json" id="bigConfig">
43
+ ${JSON.stringify(Object.keys(projects))}
44
+ </script>
45
+
46
+ <link rel="stylesheet" href="./testeranto/Project.css" />
47
+ <script type="module" src="./testeranto/Project.js"></script>
48
+
49
+ </head>
50
+
51
+ <body>
52
+ <div id="root">
53
+ react is loading
54
+ </div>
55
+ </body>
56
+
57
+ </html>
58
+ `;
59
+ };
60
+ export const idkPage = (testName, domain) => {
61
+ return `
62
+ <!DOCTYPE html>
63
+ <html lang="en">
64
+
65
+ <head>
66
+ <meta name="description" content="Webpage description goes here" />
67
+ <base href="${domain}" target="_blank">
68
+ <meta charset="utf-8" />
69
+ <title>${testName} - testeranto</title>
70
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
71
+ <meta name="author" content="" />
72
+
73
+ <link rel="stylesheet" href="./testeranto/TestReport.css" />
74
+ <script src="./testeranto/TestReport.js"></script>
75
+
76
+ </head>
77
+
78
+ <body>
79
+ <div id="root"/>
80
+ </body>
81
+ `;
82
+ };