@matter/testing 0.11.0-alpha.0-20241027-de3c9d280

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 (226) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +40 -0
  3. package/bin/test.js +7 -0
  4. package/chip/Dockerfile +23 -0
  5. package/dist/cjs/chip/pics-file.d.ts +20 -0
  6. package/dist/cjs/chip/pics-file.d.ts.map +1 -0
  7. package/dist/cjs/chip/pics-file.js +79 -0
  8. package/dist/cjs/chip/pics-file.js.map +6 -0
  9. package/dist/cjs/chip.d.ts +60 -0
  10. package/dist/cjs/chip.d.ts.map +1 -0
  11. package/dist/cjs/chip.js +306 -0
  12. package/dist/cjs/chip.js.map +6 -0
  13. package/dist/cjs/cli.d.ts +9 -0
  14. package/dist/cjs/cli.d.ts.map +1 -0
  15. package/dist/cjs/cli.js +115 -0
  16. package/dist/cjs/cli.js.map +6 -0
  17. package/dist/cjs/failure-detail.d.ts +19 -0
  18. package/dist/cjs/failure-detail.d.ts.map +1 -0
  19. package/dist/cjs/failure-detail.js +143 -0
  20. package/dist/cjs/failure-detail.js.map +6 -0
  21. package/dist/cjs/global-declarations.d.ts +38 -0
  22. package/dist/cjs/global-declarations.d.ts.map +1 -0
  23. package/dist/cjs/global-declarations.js +8 -0
  24. package/dist/cjs/global-declarations.js.map +6 -0
  25. package/dist/cjs/global-definitions.d.ts +7 -0
  26. package/dist/cjs/global-definitions.d.ts.map +1 -0
  27. package/dist/cjs/global-definitions.js +50 -0
  28. package/dist/cjs/global-definitions.js.map +6 -0
  29. package/dist/cjs/index.d.ts +10 -0
  30. package/dist/cjs/index.d.ts.map +1 -0
  31. package/dist/cjs/index.js +27 -0
  32. package/dist/cjs/index.js.map +6 -0
  33. package/dist/cjs/mocha.d.ts +36 -0
  34. package/dist/cjs/mocha.d.ts.map +1 -0
  35. package/dist/cjs/mocha.js +155 -0
  36. package/dist/cjs/mocha.js.map +6 -0
  37. package/dist/cjs/mocharc.cjs +68 -0
  38. package/dist/cjs/mocharc.d.cts +7 -0
  39. package/dist/cjs/mocks/crypto.d.ts +7 -0
  40. package/dist/cjs/mocks/crypto.d.ts.map +1 -0
  41. package/dist/cjs/mocks/crypto.js +79 -0
  42. package/dist/cjs/mocks/crypto.js.map +6 -0
  43. package/dist/cjs/mocks/environment.d.ts +7 -0
  44. package/dist/cjs/mocks/environment.d.ts.map +1 -0
  45. package/dist/cjs/mocks/environment.js +7 -0
  46. package/dist/cjs/mocks/environment.js.map +6 -0
  47. package/dist/cjs/mocks/index.d.ts +10 -0
  48. package/dist/cjs/mocks/index.d.ts.map +1 -0
  49. package/dist/cjs/mocks/index.js +27 -0
  50. package/dist/cjs/mocks/index.js.map +6 -0
  51. package/dist/cjs/mocks/logging.d.ts +28 -0
  52. package/dist/cjs/mocks/logging.d.ts.map +1 -0
  53. package/dist/cjs/mocks/logging.js +93 -0
  54. package/dist/cjs/mocks/logging.js.map +6 -0
  55. package/dist/cjs/mocks/time.d.ts +88 -0
  56. package/dist/cjs/mocks/time.d.ts.map +1 -0
  57. package/dist/cjs/mocks/time.js +251 -0
  58. package/dist/cjs/mocks/time.js.map +6 -0
  59. package/dist/cjs/node.d.ts +9 -0
  60. package/dist/cjs/node.d.ts.map +1 -0
  61. package/dist/cjs/node.js +112 -0
  62. package/dist/cjs/node.js.map +6 -0
  63. package/dist/cjs/options.d.ts +19 -0
  64. package/dist/cjs/options.d.ts.map +1 -0
  65. package/dist/cjs/options.js +62 -0
  66. package/dist/cjs/options.js.map +6 -0
  67. package/dist/cjs/package.json +6 -0
  68. package/dist/cjs/reporter.d.ts +50 -0
  69. package/dist/cjs/reporter.d.ts.map +1 -0
  70. package/dist/cjs/reporter.js +137 -0
  71. package/dist/cjs/reporter.js.map +6 -0
  72. package/dist/cjs/runner.d.ts +21 -0
  73. package/dist/cjs/runner.d.ts.map +1 -0
  74. package/dist/cjs/runner.js +113 -0
  75. package/dist/cjs/runner.js.map +6 -0
  76. package/dist/cjs/util/docker.d.ts +27 -0
  77. package/dist/cjs/util/docker.d.ts.map +1 -0
  78. package/dist/cjs/util/docker.js +163 -0
  79. package/dist/cjs/util/docker.js.map +6 -0
  80. package/dist/cjs/util/files.d.ts +7 -0
  81. package/dist/cjs/util/files.d.ts.map +1 -0
  82. package/dist/cjs/util/files.js +42 -0
  83. package/dist/cjs/util/files.js.map +6 -0
  84. package/dist/cjs/util/node-shims.d.ts +7 -0
  85. package/dist/cjs/util/node-shims.d.ts.map +1 -0
  86. package/dist/cjs/util/node-shims.js +12 -0
  87. package/dist/cjs/util/node-shims.js.map +6 -0
  88. package/dist/cjs/util/trace-unhandled.d.ts +9 -0
  89. package/dist/cjs/util/trace-unhandled.d.ts.map +1 -0
  90. package/dist/cjs/util/trace-unhandled.js +48 -0
  91. package/dist/cjs/util/trace-unhandled.js.map +6 -0
  92. package/dist/cjs/util/wtf.d.ts +10 -0
  93. package/dist/cjs/util/wtf.d.ts.map +1 -0
  94. package/dist/cjs/util/wtf.js +53 -0
  95. package/dist/cjs/util/wtf.js.map +6 -0
  96. package/dist/cjs/web.d.ts +8 -0
  97. package/dist/cjs/web.d.ts.map +1 -0
  98. package/dist/cjs/web.js +165 -0
  99. package/dist/cjs/web.js.map +6 -0
  100. package/dist/esm/chip/pics-file.d.ts +20 -0
  101. package/dist/esm/chip/pics-file.d.ts.map +1 -0
  102. package/dist/esm/chip/pics-file.js +59 -0
  103. package/dist/esm/chip/pics-file.js.map +6 -0
  104. package/dist/esm/chip.d.ts +60 -0
  105. package/dist/esm/chip.d.ts.map +1 -0
  106. package/dist/esm/chip.js +286 -0
  107. package/dist/esm/chip.js.map +6 -0
  108. package/dist/esm/cli.d.ts +9 -0
  109. package/dist/esm/cli.d.ts.map +1 -0
  110. package/dist/esm/cli.js +85 -0
  111. package/dist/esm/cli.js.map +6 -0
  112. package/dist/esm/failure-detail.d.ts +19 -0
  113. package/dist/esm/failure-detail.d.ts.map +1 -0
  114. package/dist/esm/failure-detail.js +113 -0
  115. package/dist/esm/failure-detail.js.map +6 -0
  116. package/dist/esm/global-declarations.d.ts +38 -0
  117. package/dist/esm/global-declarations.d.ts.map +1 -0
  118. package/dist/esm/global-declarations.js +7 -0
  119. package/dist/esm/global-declarations.js.map +6 -0
  120. package/dist/esm/global-definitions.d.ts +7 -0
  121. package/dist/esm/global-definitions.d.ts.map +1 -0
  122. package/dist/esm/global-definitions.js +27 -0
  123. package/dist/esm/global-definitions.js.map +6 -0
  124. package/dist/esm/index.d.ts +10 -0
  125. package/dist/esm/index.d.ts.map +1 -0
  126. package/dist/esm/index.js +10 -0
  127. package/dist/esm/index.js.map +6 -0
  128. package/dist/esm/mocha.d.ts +36 -0
  129. package/dist/esm/mocha.d.ts.map +1 -0
  130. package/dist/esm/mocha.js +135 -0
  131. package/dist/esm/mocha.js.map +6 -0
  132. package/dist/esm/mocharc.cjs +68 -0
  133. package/dist/esm/mocharc.d.cts +7 -0
  134. package/dist/esm/mocks/crypto.d.ts +7 -0
  135. package/dist/esm/mocks/crypto.d.ts.map +1 -0
  136. package/dist/esm/mocks/crypto.js +59 -0
  137. package/dist/esm/mocks/crypto.js.map +6 -0
  138. package/dist/esm/mocks/environment.d.ts +7 -0
  139. package/dist/esm/mocks/environment.d.ts.map +1 -0
  140. package/dist/esm/mocks/environment.js +6 -0
  141. package/dist/esm/mocks/environment.js.map +6 -0
  142. package/dist/esm/mocks/index.d.ts +10 -0
  143. package/dist/esm/mocks/index.d.ts.map +1 -0
  144. package/dist/esm/mocks/index.js +10 -0
  145. package/dist/esm/mocks/index.js.map +6 -0
  146. package/dist/esm/mocks/logging.d.ts +28 -0
  147. package/dist/esm/mocks/logging.d.ts.map +1 -0
  148. package/dist/esm/mocks/logging.js +63 -0
  149. package/dist/esm/mocks/logging.js.map +6 -0
  150. package/dist/esm/mocks/time.d.ts +88 -0
  151. package/dist/esm/mocks/time.d.ts.map +1 -0
  152. package/dist/esm/mocks/time.js +231 -0
  153. package/dist/esm/mocks/time.js.map +6 -0
  154. package/dist/esm/node.d.ts +9 -0
  155. package/dist/esm/node.d.ts.map +1 -0
  156. package/dist/esm/node.js +82 -0
  157. package/dist/esm/node.js.map +6 -0
  158. package/dist/esm/options.d.ts +19 -0
  159. package/dist/esm/options.d.ts.map +1 -0
  160. package/dist/esm/options.js +42 -0
  161. package/dist/esm/options.js.map +6 -0
  162. package/dist/esm/package.json +6 -0
  163. package/dist/esm/reporter.d.ts +50 -0
  164. package/dist/esm/reporter.d.ts.map +1 -0
  165. package/dist/esm/reporter.js +107 -0
  166. package/dist/esm/reporter.js.map +6 -0
  167. package/dist/esm/runner.d.ts +21 -0
  168. package/dist/esm/runner.d.ts.map +1 -0
  169. package/dist/esm/runner.js +83 -0
  170. package/dist/esm/runner.js.map +6 -0
  171. package/dist/esm/util/docker.d.ts +27 -0
  172. package/dist/esm/util/docker.d.ts.map +1 -0
  173. package/dist/esm/util/docker.js +133 -0
  174. package/dist/esm/util/docker.js.map +6 -0
  175. package/dist/esm/util/files.d.ts +7 -0
  176. package/dist/esm/util/files.d.ts.map +1 -0
  177. package/dist/esm/util/files.js +22 -0
  178. package/dist/esm/util/files.js.map +6 -0
  179. package/dist/esm/util/node-shims.d.ts +7 -0
  180. package/dist/esm/util/node-shims.d.ts.map +1 -0
  181. package/dist/esm/util/node-shims.js +11 -0
  182. package/dist/esm/util/node-shims.js.map +6 -0
  183. package/dist/esm/util/trace-unhandled.d.ts +9 -0
  184. package/dist/esm/util/trace-unhandled.d.ts.map +1 -0
  185. package/dist/esm/util/trace-unhandled.js +18 -0
  186. package/dist/esm/util/trace-unhandled.js.map +6 -0
  187. package/dist/esm/util/wtf.d.ts +10 -0
  188. package/dist/esm/util/wtf.d.ts.map +1 -0
  189. package/dist/esm/util/wtf.js +23 -0
  190. package/dist/esm/util/wtf.js.map +6 -0
  191. package/dist/esm/web.d.ts +8 -0
  192. package/dist/esm/web.d.ts.map +1 -0
  193. package/dist/esm/web.js +135 -0
  194. package/dist/esm/web.js.map +6 -0
  195. package/package.json +72 -0
  196. package/src/chip/pics-file.ts +71 -0
  197. package/src/chip/pics.properties +52 -0
  198. package/src/chip.ts +420 -0
  199. package/src/cli.ts +122 -0
  200. package/src/failure-detail.ts +126 -0
  201. package/src/global-declarations.ts +50 -0
  202. package/src/global-definitions.ts +35 -0
  203. package/src/index.html +16 -0
  204. package/src/index.ts +10 -0
  205. package/src/mocha.ts +162 -0
  206. package/src/mocharc.cjs +68 -0
  207. package/src/mocharc.d.cts +7 -0
  208. package/src/mocks/crypto.ts +70 -0
  209. package/src/mocks/environment.ts +7 -0
  210. package/src/mocks/index.ts +10 -0
  211. package/src/mocks/logging.ts +99 -0
  212. package/src/mocks/time.ts +295 -0
  213. package/src/node.ts +106 -0
  214. package/src/options.ts +58 -0
  215. package/src/reporter.ts +144 -0
  216. package/src/runner.ts +92 -0
  217. package/src/tsconfig.json +12 -0
  218. package/src/util/docker.ts +176 -0
  219. package/src/util/files.ts +25 -0
  220. package/src/util/node-shims.ts +13 -0
  221. package/src/util/trace-unhandled.ts +17 -0
  222. package/src/util/wtf.ts +25 -0
  223. package/src/web.ts +174 -0
  224. package/test/mocks/MockTimeTest.ts +113 -0
  225. package/test/tsconfig.json +18 -0
  226. package/tsconfig.json +5 -0
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Progress } from "#tools";
7
+ import colors from "ansi-colors";
8
+ import debug from "debug";
9
+ import { relative } from "path";
10
+ import { Chip } from "./chip.js";
11
+ import { FailureDetail } from "./failure-detail.js";
12
+ import { testNode } from "./node.js";
13
+ import { ProgressReporter } from "./reporter.js";
14
+ import { listSupportFiles } from "./util/files.js";
15
+ import { testWeb } from "./web.js";
16
+ class TestRunner {
17
+ constructor(pkg, progress, options) {
18
+ this.pkg = pkg;
19
+ this.progress = progress;
20
+ this.options = options;
21
+ Chip.config = { runner: this };
22
+ this.reporter = new class extends ProgressReporter {
23
+ constructor() {
24
+ super(progress);
25
+ }
26
+ failRun(detail) {
27
+ process.stdout.write("\n");
28
+ FailureDetail.dump(detail);
29
+ process.exit(1);
30
+ }
31
+ }();
32
+ if (options.spec === void 0) {
33
+ this.spec = ["test/**/*Test.ts"];
34
+ } else if (Array.isArray(options.spec)) {
35
+ this.spec = options.spec;
36
+ } else {
37
+ this.spec = [options.spec];
38
+ }
39
+ if (options.debug) {
40
+ debug.enable("mocha:*");
41
+ }
42
+ }
43
+ reporter;
44
+ spec = Array();
45
+ async runNode(format = "esm") {
46
+ await this.run(this.progress, () => testNode(this, format));
47
+ }
48
+ async runWeb(manual = false) {
49
+ await this.run(this.progress, () => testWeb(this, manual));
50
+ }
51
+ async loadFiles(format) {
52
+ const tests = [];
53
+ for (let spec of this.spec) {
54
+ spec = spec.replace(/\.ts$/, ".js");
55
+ spec = relative(this.pkg.path, spec);
56
+ if (!spec.startsWith(".") && !spec.startsWith("build/") && !spec.startsWith("dist/")) {
57
+ spec = `build/${format}/${spec}`;
58
+ }
59
+ tests.push(...await this.pkg.glob(spec));
60
+ }
61
+ if (!tests.length) {
62
+ fatal(`No files match ${this.spec.join(", ")}`);
63
+ }
64
+ return [...listSupportFiles(format), ...tests];
65
+ }
66
+ async run(progress, runner) {
67
+ await runner();
68
+ if (progress.status !== Progress.Status.Success) {
69
+ fatal(`Test ${progress.status.toLowerCase()}, aborting`);
70
+ }
71
+ }
72
+ }
73
+ function fatal(message) {
74
+ process.stderr.write(colors.redBright(`
75
+ ${message}
76
+
77
+ `));
78
+ process.exit(1);
79
+ }
80
+ export {
81
+ TestRunner
82
+ };
83
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/runner.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAkB,gBAAgB;AAClC,OAAO,YAAY;AACnB,OAAO,WAAW;AAClB,SAAS,gBAAgB;AACzB,SAAS,YAAY;AACrB,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB;AAEzB,SAAS,wBAAkC;AAC3C,SAAS,wBAAwB;AACjC,SAAS,eAAe;AAEjB,MAAM,WAAW;AAAA,EAIpB,YACa,KACA,UACA,SACX;AAHW;AACA;AACA;AAET,SAAK,SAAS,EAAE,QAAQ,KAAK;AAE7B,SAAK,WAAW,IAAK,cAAc,iBAAiB;AAAA,MAChD,cAAc;AACV,cAAM,QAAQ;AAAA,MAClB;AAAA,MACS,QAAQ,QAAuB;AACpC,gBAAQ,OAAO,MAAM,IAAI;AACzB,sBAAc,KAAK,MAAM;AACzB,gBAAQ,KAAK,CAAC;AAAA,MAClB;AAAA,IACJ,EAAG;AAEH,QAAI,QAAQ,SAAS,QAAW;AAC5B,WAAK,OAAO,CAAC,kBAAkB;AAAA,IACnC,WAAW,MAAM,QAAQ,QAAQ,IAAI,GAAG;AACpC,WAAK,OAAO,QAAQ;AAAA,IACxB,OAAO;AACH,WAAK,OAAO,CAAC,QAAQ,IAAI;AAAA,IAC7B;AAEA,QAAI,QAAQ,OAAO;AACf,YAAM,OAAO,SAAS;AAAA,IAC1B;AAAA,EACJ;AAAA,EAhCS;AAAA,EACD,OAAO,MAAc;AAAA,EAiC7B,MAAM,QAAQ,SAAwB,OAAO;AACzC,UAAM,KAAK,IAAI,KAAK,UAAU,MAAM,SAAS,MAAM,MAAM,CAAC;AAAA,EAC9D;AAAA,EAEA,MAAM,OAAO,SAAS,OAAO;AACzB,UAAM,KAAK,IAAI,KAAK,UAAU,MAAM,QAAQ,MAAM,MAAM,CAAC;AAAA,EAC7D;AAAA,EAEA,MAAM,UAAU,QAAuB;AACnC,UAAM,QAAQ,CAAC;AACf,aAAS,QAAQ,KAAK,MAAM;AACxB,aAAO,KAAK,QAAQ,SAAS,KAAK;AAClC,aAAO,SAAS,KAAK,IAAI,MAAM,IAAI;AACnC,UAAI,CAAC,KAAK,WAAW,GAAG,KAAK,CAAC,KAAK,WAAW,QAAQ,KAAK,CAAC,KAAK,WAAW,OAAO,GAAG;AAClF,eAAO,SAAS,MAAM,IAAI,IAAI;AAAA,MAClC;AAEA,YAAM,KAAK,GAAI,MAAM,KAAK,IAAI,KAAK,IAAI,CAAE;AAAA,IAC7C;AAEA,QAAI,CAAC,MAAM,QAAQ;AACf,YAAM,kBAAkB,KAAK,KAAK,KAAK,IAAI,CAAC,EAAE;AAAA,IAClD;AAEA,WAAO,CAAC,GAAG,iBAAiB,MAAM,GAAG,GAAG,KAAK;AAAA,EACjD;AAAA,EAEA,MAAc,IAAI,UAAoB,QAA6B;AAC/D,UAAM,OAAO;AACb,QAAI,SAAS,WAAW,SAAS,OAAO,SAAS;AAC7C,YAAM,QAAQ,SAAS,OAAO,YAAY,CAAC,YAAY;AAAA,IAC3D;AAAA,EACJ;AACJ;AAEA,SAAS,MAAM,SAAiB;AAC5B,UAAQ,OAAO,MAAM,OAAO,UAAU;AAAA,EAAK,OAAO;AAAA;AAAA,CAAM,CAAC;AACzD,UAAQ,KAAK,CAAC;AAClB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * A high-level docker control API specialized for our purposes.
8
+ */
9
+ export declare class Docker {
10
+ #private;
11
+ run(imageName: string, options?: Docker.RunOptions): AsyncGenerator<string, void, unknown>;
12
+ readFileFromImage(imageName: string, pathInImage: string): Promise<string>;
13
+ resolveGlobFromImage(imageName: string, glob: string): Promise<string[]>;
14
+ buildImage(name: string, path: string): Promise<void>;
15
+ }
16
+ declare namespace Docker {
17
+ interface RunOptions {
18
+ entrypoint?: string | string[];
19
+ args?: string | string[];
20
+ env?: Record<string, string>;
21
+ privileged?: boolean;
22
+ binds?: Record<string, string>;
23
+ network?: "host";
24
+ }
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=docker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docker.d.ts","sourceRoot":"","sources":["../../../src/util/docker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH;;GAEG;AACH,qBAAa,MAAM;;IAGR,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,UAAU;IAkDnD,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAaxD,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAgBpD,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CA6B9C;AAED,kBAAU,MAAM,CAAC;IACb,UAAiB,UAAU;QACvB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QAC/B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB;CACJ"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { readdir } from "fs/promises";
7
+ import { Writable } from "stream";
8
+ import Dockerode from "dockerode";
9
+ class Docker {
10
+ #intf = new Dockerode();
11
+ async *run(imageName, options) {
12
+ const { args, createOptions } = configureRun(options);
13
+ let resolve;
14
+ let reject;
15
+ let signal;
16
+ function newSignal() {
17
+ signal = new Promise((newResolve, newReject) => {
18
+ resolve = (text) => {
19
+ newResolve(text);
20
+ newSignal();
21
+ };
22
+ reject = newReject;
23
+ });
24
+ }
25
+ newSignal();
26
+ const output = new Writable();
27
+ output._write = (chunk, _encoding, done) => {
28
+ resolve(chunk.toString("utf-8"));
29
+ newSignal();
30
+ done();
31
+ };
32
+ this.#intf.run(imageName, args, output, createOptions).then(
33
+ (result) => {
34
+ const statusCode = result?.[0]?.StatusCode;
35
+ if (typeof statusCode !== "number") {
36
+ throw new Error(`Process exit status "${statusCode}" is non-numeric`);
37
+ }
38
+ if (statusCode === 0) {
39
+ resolve(void 0);
40
+ } else {
41
+ reject(new Error(`Process exited with error status "${statusCode}"`));
42
+ }
43
+ },
44
+ (error) => reject(error)
45
+ );
46
+ while (true) {
47
+ const value = await signal;
48
+ if (value === void 0) {
49
+ break;
50
+ }
51
+ yield value;
52
+ }
53
+ }
54
+ async readFileFromImage(imageName, pathInImage) {
55
+ const output = Array();
56
+ for await (const chunk of this.run(imageName, {
57
+ entrypoint: "/usr/bin/cat",
58
+ args: [pathInImage]
59
+ })) {
60
+ output.push(chunk);
61
+ }
62
+ return output.join("").replace(/\r\n/g, "\n");
63
+ }
64
+ async resolveGlobFromImage(imageName, glob) {
65
+ const output = Array();
66
+ for await (const chunk of this.run(imageName, {
67
+ entrypoint: ["/bin/bash", "-c"],
68
+ args: `ls ${glob}`
69
+ })) {
70
+ output.push(chunk);
71
+ }
72
+ return output.join("").split(/\r?\n/).filter((line) => line !== "");
73
+ }
74
+ async buildImage(name, path) {
75
+ const files = await readdir(path);
76
+ const stream = await this.#intf.buildImage(
77
+ {
78
+ context: path,
79
+ src: files
80
+ },
81
+ {
82
+ t: name
83
+ }
84
+ );
85
+ await new Promise((resolve, reject) => {
86
+ this.#intf.modem.followProgress(stream, (error, result) => {
87
+ if (error) {
88
+ reject(error);
89
+ }
90
+ const finalMessage = result[result.length - 1];
91
+ const errorMessage = finalMessage?.error ?? finalMessage?.errorDetail?.message;
92
+ if (errorMessage) {
93
+ reject(new Error(errorMessage));
94
+ }
95
+ resolve();
96
+ });
97
+ });
98
+ }
99
+ }
100
+ function configureRun(options) {
101
+ if (options === void 0) {
102
+ options = {};
103
+ }
104
+ let { args } = options;
105
+ if (args === void 0) {
106
+ args = [];
107
+ } else if (typeof args === "string") {
108
+ args = [args];
109
+ }
110
+ const createOptions = {
111
+ HostConfig: {
112
+ AutoRemove: true
113
+ }
114
+ };
115
+ const { entrypoint, env, binds, network } = options ?? {};
116
+ if (entrypoint !== void 0) {
117
+ createOptions.Entrypoint = entrypoint;
118
+ }
119
+ if (env) {
120
+ createOptions.Env = Object.entries(env).map(([k, v]) => `${k}=${v}`);
121
+ }
122
+ if (binds) {
123
+ createOptions.HostConfig.Binds = Object.entries(binds).map(([k, v]) => `${k}:${v}`);
124
+ }
125
+ if (network) {
126
+ createOptions.HostConfig.NetworkMode = network;
127
+ }
128
+ return { args, createOptions };
129
+ }
130
+ export {
131
+ Docker
132
+ };
133
+ //# sourceMappingURL=docker.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/docker.ts"],
4
+ "mappings": "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",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare function listSupportFiles(format?: string): string[];
7
+ //# sourceMappingURL=files.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/util/files.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,wBAAgB,gBAAgB,CAAC,MAAM,SAAQ,YAe9C"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Package } from "#tools";
7
+ import { existsSync } from "fs";
8
+ function listSupportFiles(format = "cjs") {
9
+ const files = Array();
10
+ const testing = Package.tools.findPackage("@matter/testing");
11
+ files.push(testing.resolve("dist/esm/global-definitions.js"));
12
+ files.push(testing.resolve("dist/esm/mocks/index.js"));
13
+ const config = new Package().resolve(`build/${format}/test/test.config.js`);
14
+ if (existsSync(config)) {
15
+ files.push(config);
16
+ }
17
+ return files;
18
+ }
19
+ export {
20
+ listSupportFiles
21
+ };
22
+ //# sourceMappingURL=files.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/files.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AACxB,SAAS,kBAAkB;AAEpB,SAAS,iBAAiB,SAAS,OAAO;AAC7C,QAAM,QAAQ,MAAc;AAG5B,QAAM,UAAU,QAAQ,MAAM,YAAY,iBAAiB;AAC3D,QAAM,KAAK,QAAQ,QAAQ,gCAAgC,CAAC;AAC5D,QAAM,KAAK,QAAQ,QAAQ,yBAAyB,CAAC;AAGrD,QAAM,SAAS,IAAI,QAAQ,EAAE,QAAQ,SAAS,MAAM,sBAAsB;AAC1E,MAAI,WAAW,MAAM,GAAG;AACpB,UAAM,KAAK,MAAM;AAAA,EACrB;AAEA,SAAO;AACX;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "mocha";
7
+ //# sourceMappingURL=node-shims.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-shims.d.ts","sourceRoot":"","sources":["../../../src/util/node-shims.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,OAAO,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import "mocha";
7
+ import { webcrypto } from "node:crypto";
8
+ if (globalThis.crypto === void 0) {
9
+ Object.assign(globalThis, { crypto: webcrypto });
10
+ }
11
+ //# sourceMappingURL=node-shims.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/node-shims.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AACP,SAAS,iBAAiB;AAG1B,IAAI,WAAW,WAAW,QAAW;AACjC,SAAO,OAAO,YAAY,EAAE,QAAQ,UAAU,CAAC;AACnD;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const traceUnhandled: {
7
+ initialize(): Promise<void>;
8
+ };
9
+ //# sourceMappingURL=trace-unhandled.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trace-unhandled.d.ts","sourceRoot":"","sources":["../../../src/util/trace-unhandled.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,cAAc;;CAU1B,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const traceUnhandled = {
7
+ async initialize() {
8
+ if (!process.argv.includes("--trace-unhandled") && !process.env.MATTER_TRACE_UNHANDLED) {
9
+ return;
10
+ }
11
+ const { register } = await import("trace-unhandled");
12
+ register();
13
+ }
14
+ };
15
+ export {
16
+ traceUnhandled
17
+ };
18
+ //# sourceMappingURL=trace-unhandled.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/trace-unhandled.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,iBAAiB;AAAA,EAC1B,MAAM,aAAa;AAEf,QAAI,CAAC,QAAQ,KAAK,SAAS,mBAAmB,KAAK,CAAC,QAAQ,IAAI,wBAAwB;AACpF;AAAA,IACJ;AAEA,UAAM,EAAE,SAAS,IAAI,MAAM,OAAO,iBAAiB;AACnD,aAAS;AAAA,EACb;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const wtf: {
7
+ initialize(): Promise<void>;
8
+ dump(): void;
9
+ };
10
+ //# sourceMappingURL=wtf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wtf.d.ts","sourceRoot":"","sources":["../../../src/util/wtf.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,GAAG;;;CAkBf,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const wtf = {
7
+ async initialize() {
8
+ if (typeof process !== "object" || process?.release?.name !== "node") {
9
+ return;
10
+ }
11
+ if (!process.argv.includes("--wtf") && !process.env.MATTER_WTF) {
12
+ return;
13
+ }
14
+ const { dump } = await import("wtfnode");
15
+ this.dump = () => dump();
16
+ },
17
+ dump() {
18
+ }
19
+ };
20
+ export {
21
+ wtf
22
+ };
23
+ //# sourceMappingURL=wtf.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/wtf.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,MAAM;AAAA,EACf,MAAM,aAAa;AAEf,QAAI,OAAO,YAAY,YAAY,SAAS,SAAS,SAAS,QAAQ;AAClE;AAAA,IACJ;AAIA,QAAI,CAAC,QAAQ,KAAK,SAAS,OAAO,KAAK,CAAC,QAAQ,IAAI,YAAY;AAC5D;AAAA,IACJ;AAEA,UAAM,EAAE,KAAK,IAAI,MAAM,OAAO,SAAS;AACvC,SAAK,OAAO,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEA,OAAO;AAAA,EAAC;AACZ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { TestRunner } from "./runner.js";
7
+ export declare function testWeb(runner: TestRunner, manual: boolean): Promise<void>;
8
+ //# sourceMappingURL=web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAsB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,iBA0ChE"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Package } from "#tools";
7
+ import { build } from "esbuild";
8
+ import express from "express";
9
+ import { writeFile } from "fs/promises";
10
+ import { relative } from "path";
11
+ import { chromium } from "playwright";
12
+ import { ConsoleProxyReporter } from "./reporter.js";
13
+ async function testWeb(runner, manual) {
14
+ const files = await runner.loadFiles("esm");
15
+ const bundlePath = await bundle(files, runner.pkg);
16
+ const server = await new Promise((resolve, reject) => {
17
+ try {
18
+ const server2 = express().use(express.static(Package.workspace.resolve("node_modules"))).use(express.static(Package.workspace.path)).get("/", (_, res) => res.send(buildIndex(bundlePath))).listen(0, "localhost", () => resolve(server2));
19
+ } catch (e) {
20
+ reject(e);
21
+ }
22
+ });
23
+ const addr = server.address();
24
+ let ip = addr.address;
25
+ if (ip.indexOf(":") !== -1) {
26
+ ip = `[${ip}]`;
27
+ }
28
+ const url = `http://${ip}:${addr.port}/`;
29
+ await new Promise((resolve, reject) => {
30
+ server.on("error", reject);
31
+ server.on("close", resolve);
32
+ if (manual) {
33
+ console.log(`Run tests manually at ${url}`);
34
+ } else {
35
+ testInBrowser(url, runner.reporter, runner.options).then(() => {
36
+ server.close(() => {
37
+ resolve();
38
+ });
39
+ }).catch((error) => {
40
+ reject(error);
41
+ });
42
+ }
43
+ });
44
+ }
45
+ async function testInBrowser(url, reporter, options) {
46
+ async function setup() {
47
+ const browser = await chromium.launch();
48
+ const page = await browser.newPage();
49
+ return { browser, page };
50
+ }
51
+ async function run({ browser, page }) {
52
+ await page.goto(url);
53
+ await page.evaluate((options2) => globalThis.MatterTest.auto(options2), options);
54
+ await browser.close();
55
+ }
56
+ await new Promise((resolve, reject) => {
57
+ setup().then((cx) => {
58
+ cx.page.on("console", consoleHandler(reporter));
59
+ cx.page.on("pageerror", (error) => reject(error));
60
+ return cx;
61
+ }).then(run).then(resolve).catch(reject);
62
+ });
63
+ }
64
+ function consoleHandler(reporter) {
65
+ return (message) => {
66
+ const type = message.type();
67
+ switch (type) {
68
+ case "log":
69
+ case "debug":
70
+ case "info":
71
+ case "error":
72
+ case "warn":
73
+ case "trace":
74
+ break;
75
+ default:
76
+ return;
77
+ }
78
+ const text = message.text();
79
+ if (type !== "log" || !text.startsWith(ConsoleProxyReporter.FLAG)) {
80
+ console[type](text);
81
+ return;
82
+ }
83
+ const args = JSON.parse(text.slice(ConsoleProxyReporter.FLAG.length));
84
+ const method = reporter[args[0]];
85
+ if (typeof method !== "function") {
86
+ throw new Error(`Invalid encoded reporter update method ${args[0]}`);
87
+ }
88
+ method.call(reporter, ...args.slice(1));
89
+ };
90
+ }
91
+ function buildIndex(bundlePath) {
92
+ return `<!DOCTYPE html>
93
+ <html>
94
+ <head>
95
+ <title>Matter.js Web Testing</title>
96
+ <link rel="stylesheet" href="mocha/mocha.css">
97
+ </head>
98
+ <body>
99
+ <div id="mocha"><h1><a href="javascript:MatterTest.start()">run tests</a></h1></div>
100
+ <script src="mocha/mocha.js"><\/script>
101
+ <script src="${bundlePath}" type="module"><\/script>
102
+ </body>
103
+ </html>`;
104
+ }
105
+ async function bundle(files, pkg) {
106
+ const entrypointPath = pkg.resolve("build/esm/test-entrypoint.js");
107
+ const bundlePath = pkg.resolve("build/cjs/test-bundle.js");
108
+ const entrypoint = files.map((path) => {
109
+ path = relative(pkg.resolve("build/esm"), path).replace(/\\/g, "/");
110
+ if (!path.startsWith(".")) {
111
+ path = `./${path}`;
112
+ }
113
+ return `import ${JSON.stringify(path)}`;
114
+ }).join("\n");
115
+ await writeFile(pkg.resolve("build/esm/test-entrypoint.js"), entrypoint);
116
+ await build({
117
+ entryPoints: [entrypointPath],
118
+ bundle: true,
119
+ format: "cjs",
120
+ outfile: bundlePath,
121
+ external: ["wtfnode"],
122
+ keepNames: true,
123
+ // This doesn't work...
124
+ // logOverride: {
125
+ // "direct-eval": "silent",
126
+ // },
127
+ // ...so we do this:
128
+ logLevel: "error"
129
+ });
130
+ return pkg.workspace.relative(bundlePath);
131
+ }
132
+ export {
133
+ testWeb
134
+ };
135
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/web.ts"],
4
+ "mappings": "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",
5
+ "names": ["server", "options"]
6
+ }
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@matter/testing",
3
+ "version": "0.11.0-alpha.0-20241027-de3c9d280",
4
+ "description": "Matter.js tooling",
5
+ "type": "module",
6
+ "scripts": {
7
+ "clean": "matter-build clean",
8
+ "build": "matter-build",
9
+ "build-clean": "matter-build --clean",
10
+ "test": "matter-test"
11
+ },
12
+ "bin": {
13
+ "matter-test": "bin/test.js"
14
+ },
15
+ "exports": {
16
+ ".": {
17
+ "import": {
18
+ "types": "./dist/esm/index.d.ts",
19
+ "default": "./dist/esm/index.js"
20
+ },
21
+ "require": {
22
+ "types": "./dist/cjs/index.d.ts",
23
+ "default": "./dist/cjs/index.js"
24
+ }
25
+ }
26
+ },
27
+ "main": "dist/cjs/index.js",
28
+ "module": "dist/esm/index.js",
29
+ "types": "dist/esm/index.d.ts",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "git+https://github.com/project-chip/matter.js.git"
33
+ },
34
+ "author": "matter.js authors",
35
+ "contributors": [
36
+ "Greg Lauckhart <greg@lauckhart.com>"
37
+ ],
38
+ "license": "Apache-2.0",
39
+ "bugs": {
40
+ "url": "https://github.com/project-chip/matter.js/issues"
41
+ },
42
+ "homepage": "https://github.com/project-chip/matter.js#readme",
43
+ "imports": {
44
+ "#tools": "@matter/tools"
45
+ },
46
+ "dependencies": {
47
+ "@matter/tools": "0.11.0-alpha.0-20241027-de3c9d280",
48
+ "@types/express": "^4.17.21",
49
+ "chai": "^4.4.1",
50
+ "chai-as-promised": "^7.1.2",
51
+ "dockerode": "^4.0.2",
52
+ "express": "^4.19.2",
53
+ "mocha": "^10.7.3",
54
+ "playwright": "^1.48.1",
55
+ "trace-unhandled": "^2.0.1",
56
+ "wtfnode": "^0.9.3",
57
+ "yargs": "^17.7.2"
58
+ },
59
+ "devDependencies": {
60
+ "typescript": "~5.6.2",
61
+ "@types/dockerode": "^3.3.30",
62
+ "@types/chai": "^4.3.16",
63
+ "@types/chai-as-promised": "^7.1.8",
64
+ "@types/debug": "^4.1.12",
65
+ "@types/mocha": "^10.0.7",
66
+ "@types/wtfnode": "^0.7.3",
67
+ "@types/yargs": "^17.0.33"
68
+ },
69
+ "publishConfig": {
70
+ "access": "public"
71
+ }
72
+ }