@matter/tools 0.11.0-alpha.0-20241005-e3e4e4a7a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/README.md +100 -0
- package/bin/build.js +10 -0
- package/bin/prepare-chip.js +5 -0
- package/bin/run.js +7 -0
- package/bin/test.js +7 -0
- package/bin/version.js +7 -0
- package/chip/Dockerfile +23 -0
- package/dist/cjs/building/builder.d.ts +35 -0
- package/dist/cjs/building/builder.d.ts.map +1 -0
- package/dist/cjs/building/builder.js +210 -0
- package/dist/cjs/building/builder.js.map +6 -0
- package/dist/cjs/building/cli.d.ts +7 -0
- package/dist/cjs/building/cli.d.ts.map +1 -0
- package/dist/cjs/building/cli.js +100 -0
- package/dist/cjs/building/cli.js.map +6 -0
- package/dist/cjs/building/error.d.ts +16 -0
- package/dist/cjs/building/error.d.ts.map +1 -0
- package/dist/cjs/building/error.js +50 -0
- package/dist/cjs/building/error.js.map +6 -0
- package/dist/cjs/building/graph.d.ts +37 -0
- package/dist/cjs/building/graph.d.ts.map +1 -0
- package/dist/cjs/building/graph.js +222 -0
- package/dist/cjs/building/graph.js.map +6 -0
- package/dist/cjs/building/project.d.ts +56 -0
- package/dist/cjs/building/project.d.ts.map +1 -0
- package/dist/cjs/building/project.js +239 -0
- package/dist/cjs/building/project.js.map +6 -0
- package/dist/cjs/building/tsconfig.d.ts +16 -0
- package/dist/cjs/building/tsconfig.d.ts.map +1 -0
- package/dist/cjs/building/tsconfig.js +70 -0
- package/dist/cjs/building/tsconfig.js.map +6 -0
- package/dist/cjs/building/typescript/context.d.ts +16 -0
- package/dist/cjs/building/typescript/context.d.ts.map +1 -0
- package/dist/cjs/building/typescript/context.js +82 -0
- package/dist/cjs/building/typescript/context.js.map +6 -0
- package/dist/cjs/building/typescript/incremental-compiler.d.ts +10 -0
- package/dist/cjs/building/typescript/incremental-compiler.d.ts.map +1 -0
- package/dist/cjs/building/typescript/incremental-compiler.js +119 -0
- package/dist/cjs/building/typescript/incremental-compiler.js.map +6 -0
- package/dist/cjs/building/typescript/language-service.d.ts +13 -0
- package/dist/cjs/building/typescript/language-service.d.ts.map +1 -0
- package/dist/cjs/building/typescript/language-service.js +109 -0
- package/dist/cjs/building/typescript/language-service.js.map +6 -0
- package/dist/cjs/building/typescript/solution-builder.d.ts +10 -0
- package/dist/cjs/building/typescript/solution-builder.d.ts.map +1 -0
- package/dist/cjs/building/typescript/solution-builder.js +72 -0
- package/dist/cjs/building/typescript/solution-builder.js.map +6 -0
- package/dist/cjs/building/typescript.d.ts +13 -0
- package/dist/cjs/building/typescript.d.ts.map +1 -0
- package/dist/cjs/building/typescript.js +31 -0
- package/dist/cjs/building/typescript.js.map +6 -0
- package/dist/cjs/index.d.ts +15 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +32 -0
- package/dist/cjs/index.js.map +6 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/running/cli.d.ts +19 -0
- package/dist/cjs/running/cli.d.ts.map +1 -0
- package/dist/cjs/running/cli.js +82 -0
- package/dist/cjs/running/cli.js.map +6 -0
- package/dist/cjs/running/execute.d.ts +8 -0
- package/dist/cjs/running/execute.d.ts.map +1 -0
- package/dist/cjs/running/execute.js +82 -0
- package/dist/cjs/running/execute.js.map +6 -0
- package/dist/cjs/testing/chip/pics-file.d.ts +20 -0
- package/dist/cjs/testing/chip/pics-file.d.ts.map +1 -0
- package/dist/cjs/testing/chip/pics-file.js +79 -0
- package/dist/cjs/testing/chip/pics-file.js.map +6 -0
- package/dist/cjs/testing/chip.d.ts +60 -0
- package/dist/cjs/testing/chip.d.ts.map +1 -0
- package/dist/cjs/testing/chip.js +306 -0
- package/dist/cjs/testing/chip.js.map +6 -0
- package/dist/cjs/testing/cli.d.ts +9 -0
- package/dist/cjs/testing/cli.d.ts.map +1 -0
- package/dist/cjs/testing/cli.js +117 -0
- package/dist/cjs/testing/cli.js.map +6 -0
- package/dist/cjs/testing/failure-detail.d.ts +19 -0
- package/dist/cjs/testing/failure-detail.d.ts.map +1 -0
- package/dist/cjs/testing/failure-detail.js +143 -0
- package/dist/cjs/testing/failure-detail.js.map +6 -0
- package/dist/cjs/testing/files.d.ts +8 -0
- package/dist/cjs/testing/files.d.ts.map +1 -0
- package/dist/cjs/testing/files.js +52 -0
- package/dist/cjs/testing/files.js.map +6 -0
- package/dist/cjs/testing/global-declarations.d.ts +38 -0
- package/dist/cjs/testing/global-declarations.d.ts.map +1 -0
- package/dist/cjs/testing/global-declarations.js +8 -0
- package/dist/cjs/testing/global-declarations.js.map +6 -0
- package/dist/cjs/testing/global-definitions.d.ts +7 -0
- package/dist/cjs/testing/global-definitions.d.ts.map +1 -0
- package/dist/cjs/testing/global-definitions.js +50 -0
- package/dist/cjs/testing/global-definitions.js.map +6 -0
- package/dist/cjs/testing/mocha.d.ts +36 -0
- package/dist/cjs/testing/mocha.d.ts.map +1 -0
- package/dist/cjs/testing/mocha.js +155 -0
- package/dist/cjs/testing/mocha.js.map +6 -0
- package/dist/cjs/testing/mocharc.cjs +68 -0
- package/dist/cjs/testing/mocharc.d.cts +7 -0
- package/dist/cjs/testing/mocks/crypto.d.ts +7 -0
- package/dist/cjs/testing/mocks/crypto.d.ts.map +1 -0
- package/dist/cjs/testing/mocks/crypto.js +79 -0
- package/dist/cjs/testing/mocks/crypto.js.map +6 -0
- package/dist/cjs/testing/mocks/environment.d.ts +7 -0
- package/dist/cjs/testing/mocks/environment.d.ts.map +1 -0
- package/dist/cjs/testing/mocks/environment.js +7 -0
- package/dist/cjs/testing/mocks/environment.js.map +6 -0
- package/dist/cjs/testing/mocks/index.d.ts +10 -0
- package/dist/cjs/testing/mocks/index.d.ts.map +1 -0
- package/dist/cjs/testing/mocks/index.js +27 -0
- package/dist/cjs/testing/mocks/index.js.map +6 -0
- package/dist/cjs/testing/mocks/logging.d.ts +28 -0
- package/dist/cjs/testing/mocks/logging.d.ts.map +1 -0
- package/dist/cjs/testing/mocks/logging.js +93 -0
- package/dist/cjs/testing/mocks/logging.js.map +6 -0
- package/dist/cjs/testing/mocks/time.d.ts +88 -0
- package/dist/cjs/testing/mocks/time.d.ts.map +1 -0
- package/dist/cjs/testing/mocks/time.js +250 -0
- package/dist/cjs/testing/mocks/time.js.map +6 -0
- package/dist/cjs/testing/node.d.ts +16 -0
- package/dist/cjs/testing/node.d.ts.map +1 -0
- package/dist/cjs/testing/node.js +108 -0
- package/dist/cjs/testing/node.js.map +6 -0
- package/dist/cjs/testing/options.d.ts +19 -0
- package/dist/cjs/testing/options.d.ts.map +1 -0
- package/dist/cjs/testing/options.js +62 -0
- package/dist/cjs/testing/options.js.map +6 -0
- package/dist/cjs/testing/reporter.d.ts +50 -0
- package/dist/cjs/testing/reporter.d.ts.map +1 -0
- package/dist/cjs/testing/reporter.js +137 -0
- package/dist/cjs/testing/reporter.js.map +6 -0
- package/dist/cjs/testing/runner.d.ts +22 -0
- package/dist/cjs/testing/runner.d.ts.map +1 -0
- package/dist/cjs/testing/runner.js +116 -0
- package/dist/cjs/testing/runner.js.map +6 -0
- package/dist/cjs/testing/web.d.ts +8 -0
- package/dist/cjs/testing/web.d.ts.map +1 -0
- package/dist/cjs/testing/web.js +165 -0
- package/dist/cjs/testing/web.js.map +6 -0
- package/dist/cjs/util/bootstrap.mjs +105 -0
- package/dist/cjs/util/docker.d.ts +27 -0
- package/dist/cjs/util/docker.d.ts.map +1 -0
- package/dist/cjs/util/docker.js +163 -0
- package/dist/cjs/util/docker.js.map +6 -0
- package/dist/cjs/util/errors.d.ts +8 -0
- package/dist/cjs/util/errors.d.ts.map +1 -0
- package/dist/cjs/util/errors.js +55 -0
- package/dist/cjs/util/errors.js.map +6 -0
- package/dist/cjs/util/index.d.ts +8 -0
- package/dist/cjs/util/index.d.ts.map +1 -0
- package/dist/cjs/util/index.js +25 -0
- package/dist/cjs/util/index.js.map +6 -0
- package/dist/cjs/util/node-shims.d.ts +7 -0
- package/dist/cjs/util/node-shims.d.ts.map +1 -0
- package/dist/cjs/util/node-shims.js +12 -0
- package/dist/cjs/util/node-shims.js.map +6 -0
- package/dist/cjs/util/package.d.ts +61 -0
- package/dist/cjs/util/package.d.ts.map +1 -0
- package/dist/cjs/util/package.js +324 -0
- package/dist/cjs/util/package.js.map +6 -0
- package/dist/cjs/util/progress.d.ts +31 -0
- package/dist/cjs/util/progress.d.ts.map +1 -0
- package/dist/cjs/util/progress.js +232 -0
- package/dist/cjs/util/progress.js.map +6 -0
- package/dist/cjs/util/tools-path.cjs +13 -0
- package/dist/cjs/util/tools-path.d.cts +7 -0
- package/dist/cjs/util/trace-unhandled.d.ts +9 -0
- package/dist/cjs/util/trace-unhandled.d.ts.map +1 -0
- package/dist/cjs/util/trace-unhandled.js +48 -0
- package/dist/cjs/util/trace-unhandled.js.map +6 -0
- package/dist/cjs/util/wtf.d.ts +10 -0
- package/dist/cjs/util/wtf.d.ts.map +1 -0
- package/dist/cjs/util/wtf.js +53 -0
- package/dist/cjs/util/wtf.js.map +6 -0
- package/dist/cjs/versioning/cli.d.ts +7 -0
- package/dist/cjs/versioning/cli.d.ts.map +1 -0
- package/dist/cjs/versioning/cli.js +62 -0
- package/dist/cjs/versioning/cli.js.map +6 -0
- package/dist/cjs/versioning/versioner.d.ts +18 -0
- package/dist/cjs/versioning/versioner.d.ts.map +1 -0
- package/dist/cjs/versioning/versioner.js +145 -0
- package/dist/cjs/versioning/versioner.js.map +6 -0
- package/dist/esm/building/builder.d.ts +35 -0
- package/dist/esm/building/builder.d.ts.map +1 -0
- package/dist/esm/building/builder.js +180 -0
- package/dist/esm/building/builder.js.map +6 -0
- package/dist/esm/building/cli.d.ts +7 -0
- package/dist/esm/building/cli.d.ts.map +1 -0
- package/dist/esm/building/cli.js +70 -0
- package/dist/esm/building/cli.js.map +6 -0
- package/dist/esm/building/error.d.ts +16 -0
- package/dist/esm/building/error.d.ts.map +1 -0
- package/dist/esm/building/error.js +30 -0
- package/dist/esm/building/error.js.map +6 -0
- package/dist/esm/building/graph.d.ts +37 -0
- package/dist/esm/building/graph.d.ts.map +1 -0
- package/dist/esm/building/graph.js +192 -0
- package/dist/esm/building/graph.js.map +6 -0
- package/dist/esm/building/project.d.ts +56 -0
- package/dist/esm/building/project.d.ts.map +1 -0
- package/dist/esm/building/project.js +219 -0
- package/dist/esm/building/project.js.map +6 -0
- package/dist/esm/building/tsconfig.d.ts +16 -0
- package/dist/esm/building/tsconfig.d.ts.map +1 -0
- package/dist/esm/building/tsconfig.js +50 -0
- package/dist/esm/building/tsconfig.js.map +6 -0
- package/dist/esm/building/typescript/context.d.ts +16 -0
- package/dist/esm/building/typescript/context.d.ts.map +1 -0
- package/dist/esm/building/typescript/context.js +68 -0
- package/dist/esm/building/typescript/context.js.map +6 -0
- package/dist/esm/building/typescript/incremental-compiler.d.ts +10 -0
- package/dist/esm/building/typescript/incremental-compiler.d.ts.map +1 -0
- package/dist/esm/building/typescript/incremental-compiler.js +99 -0
- package/dist/esm/building/typescript/incremental-compiler.js.map +6 -0
- package/dist/esm/building/typescript/language-service.d.ts +13 -0
- package/dist/esm/building/typescript/language-service.d.ts.map +1 -0
- package/dist/esm/building/typescript/language-service.js +99 -0
- package/dist/esm/building/typescript/language-service.js.map +6 -0
- package/dist/esm/building/typescript/solution-builder.d.ts +10 -0
- package/dist/esm/building/typescript/solution-builder.d.ts.map +1 -0
- package/dist/esm/building/typescript/solution-builder.js +52 -0
- package/dist/esm/building/typescript/solution-builder.js.map +6 -0
- package/dist/esm/building/typescript.d.ts +13 -0
- package/dist/esm/building/typescript.d.ts.map +1 -0
- package/dist/esm/building/typescript.js +11 -0
- package/dist/esm/building/typescript.js.map +6 -0
- package/dist/esm/index.d.ts +15 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +6 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/running/cli.d.ts +19 -0
- package/dist/esm/running/cli.d.ts.map +1 -0
- package/dist/esm/running/cli.js +62 -0
- package/dist/esm/running/cli.js.map +6 -0
- package/dist/esm/running/execute.d.ts +8 -0
- package/dist/esm/running/execute.d.ts.map +1 -0
- package/dist/esm/running/execute.js +52 -0
- package/dist/esm/running/execute.js.map +6 -0
- package/dist/esm/testing/chip/pics-file.d.ts +20 -0
- package/dist/esm/testing/chip/pics-file.d.ts.map +1 -0
- package/dist/esm/testing/chip/pics-file.js +59 -0
- package/dist/esm/testing/chip/pics-file.js.map +6 -0
- package/dist/esm/testing/chip.d.ts +60 -0
- package/dist/esm/testing/chip.d.ts.map +1 -0
- package/dist/esm/testing/chip.js +286 -0
- package/dist/esm/testing/chip.js.map +6 -0
- package/dist/esm/testing/cli.d.ts +9 -0
- package/dist/esm/testing/cli.d.ts.map +1 -0
- package/dist/esm/testing/cli.js +87 -0
- package/dist/esm/testing/cli.js.map +6 -0
- package/dist/esm/testing/failure-detail.d.ts +19 -0
- package/dist/esm/testing/failure-detail.d.ts.map +1 -0
- package/dist/esm/testing/failure-detail.js +113 -0
- package/dist/esm/testing/failure-detail.js.map +6 -0
- package/dist/esm/testing/files.d.ts +8 -0
- package/dist/esm/testing/files.d.ts.map +1 -0
- package/dist/esm/testing/files.js +32 -0
- package/dist/esm/testing/files.js.map +6 -0
- package/dist/esm/testing/global-declarations.d.ts +38 -0
- package/dist/esm/testing/global-declarations.d.ts.map +1 -0
- package/dist/esm/testing/global-declarations.js +7 -0
- package/dist/esm/testing/global-declarations.js.map +6 -0
- package/dist/esm/testing/global-definitions.d.ts +7 -0
- package/dist/esm/testing/global-definitions.d.ts.map +1 -0
- package/dist/esm/testing/global-definitions.js +27 -0
- package/dist/esm/testing/global-definitions.js.map +6 -0
- package/dist/esm/testing/mocha.d.ts +36 -0
- package/dist/esm/testing/mocha.d.ts.map +1 -0
- package/dist/esm/testing/mocha.js +135 -0
- package/dist/esm/testing/mocha.js.map +6 -0
- package/dist/esm/testing/mocharc.cjs +68 -0
- package/dist/esm/testing/mocharc.d.cts +7 -0
- package/dist/esm/testing/mocks/crypto.d.ts +7 -0
- package/dist/esm/testing/mocks/crypto.d.ts.map +1 -0
- package/dist/esm/testing/mocks/crypto.js +59 -0
- package/dist/esm/testing/mocks/crypto.js.map +6 -0
- package/dist/esm/testing/mocks/environment.d.ts +7 -0
- package/dist/esm/testing/mocks/environment.d.ts.map +1 -0
- package/dist/esm/testing/mocks/environment.js +6 -0
- package/dist/esm/testing/mocks/environment.js.map +6 -0
- package/dist/esm/testing/mocks/index.d.ts +10 -0
- package/dist/esm/testing/mocks/index.d.ts.map +1 -0
- package/dist/esm/testing/mocks/index.js +10 -0
- package/dist/esm/testing/mocks/index.js.map +6 -0
- package/dist/esm/testing/mocks/logging.d.ts +28 -0
- package/dist/esm/testing/mocks/logging.d.ts.map +1 -0
- package/dist/esm/testing/mocks/logging.js +63 -0
- package/dist/esm/testing/mocks/logging.js.map +6 -0
- package/dist/esm/testing/mocks/time.d.ts +88 -0
- package/dist/esm/testing/mocks/time.d.ts.map +1 -0
- package/dist/esm/testing/mocks/time.js +230 -0
- package/dist/esm/testing/mocks/time.js.map +6 -0
- package/dist/esm/testing/node.d.ts +16 -0
- package/dist/esm/testing/node.d.ts.map +1 -0
- package/dist/esm/testing/node.js +78 -0
- package/dist/esm/testing/node.js.map +6 -0
- package/dist/esm/testing/options.d.ts +19 -0
- package/dist/esm/testing/options.d.ts.map +1 -0
- package/dist/esm/testing/options.js +42 -0
- package/dist/esm/testing/options.js.map +6 -0
- package/dist/esm/testing/reporter.d.ts +50 -0
- package/dist/esm/testing/reporter.d.ts.map +1 -0
- package/dist/esm/testing/reporter.js +107 -0
- package/dist/esm/testing/reporter.js.map +6 -0
- package/dist/esm/testing/runner.d.ts +22 -0
- package/dist/esm/testing/runner.d.ts.map +1 -0
- package/dist/esm/testing/runner.js +86 -0
- package/dist/esm/testing/runner.js.map +6 -0
- package/dist/esm/testing/web.d.ts +8 -0
- package/dist/esm/testing/web.d.ts.map +1 -0
- package/dist/esm/testing/web.js +135 -0
- package/dist/esm/testing/web.js.map +6 -0
- package/dist/esm/util/bootstrap.mjs +105 -0
- package/dist/esm/util/docker.d.ts +27 -0
- package/dist/esm/util/docker.d.ts.map +1 -0
- package/dist/esm/util/docker.js +133 -0
- package/dist/esm/util/docker.js.map +6 -0
- package/dist/esm/util/errors.d.ts +8 -0
- package/dist/esm/util/errors.d.ts.map +1 -0
- package/dist/esm/util/errors.js +35 -0
- package/dist/esm/util/errors.js.map +6 -0
- package/dist/esm/util/index.d.ts +8 -0
- package/dist/esm/util/index.d.ts.map +1 -0
- package/dist/esm/util/index.js +8 -0
- package/dist/esm/util/index.js.map +6 -0
- package/dist/esm/util/node-shims.d.ts +7 -0
- package/dist/esm/util/node-shims.d.ts.map +1 -0
- package/dist/esm/util/node-shims.js +11 -0
- package/dist/esm/util/node-shims.js.map +6 -0
- package/dist/esm/util/package.d.ts +61 -0
- package/dist/esm/util/package.d.ts.map +1 -0
- package/dist/esm/util/package.js +304 -0
- package/dist/esm/util/package.js.map +6 -0
- package/dist/esm/util/progress.d.ts +31 -0
- package/dist/esm/util/progress.d.ts.map +1 -0
- package/dist/esm/util/progress.js +202 -0
- package/dist/esm/util/progress.js.map +6 -0
- package/dist/esm/util/tools-path.cjs +13 -0
- package/dist/esm/util/tools-path.d.cts +7 -0
- package/dist/esm/util/trace-unhandled.d.ts +9 -0
- package/dist/esm/util/trace-unhandled.d.ts.map +1 -0
- package/dist/esm/util/trace-unhandled.js +18 -0
- package/dist/esm/util/trace-unhandled.js.map +6 -0
- package/dist/esm/util/wtf.d.ts +10 -0
- package/dist/esm/util/wtf.d.ts.map +1 -0
- package/dist/esm/util/wtf.js +23 -0
- package/dist/esm/util/wtf.js.map +6 -0
- package/dist/esm/versioning/cli.d.ts +7 -0
- package/dist/esm/versioning/cli.d.ts.map +1 -0
- package/dist/esm/versioning/cli.js +32 -0
- package/dist/esm/versioning/cli.js.map +6 -0
- package/dist/esm/versioning/versioner.d.ts +18 -0
- package/dist/esm/versioning/versioner.d.ts.map +1 -0
- package/dist/esm/versioning/versioner.js +115 -0
- package/dist/esm/versioning/versioner.js.map +6 -0
- package/package.json +82 -0
- package/src/building/builder.ts +216 -0
- package/src/building/cli.ts +89 -0
- package/src/building/error.ts +29 -0
- package/src/building/graph.ts +251 -0
- package/src/building/project.ts +313 -0
- package/src/building/tsconfig.ts +69 -0
- package/src/building/typescript/context.ts +85 -0
- package/src/building/typescript/incremental-compiler.ts +126 -0
- package/src/building/typescript/language-service.ts +132 -0
- package/src/building/typescript/solution-builder.ts +67 -0
- package/src/building/typescript.ts +15 -0
- package/src/index.ts +15 -0
- package/src/running/cli.ts +95 -0
- package/src/running/execute.ts +63 -0
- package/src/testing/chip/pics-file.ts +71 -0
- package/src/testing/chip/pics.properties +53 -0
- package/src/testing/chip.ts +420 -0
- package/src/testing/cli.ts +122 -0
- package/src/testing/failure-detail.ts +126 -0
- package/src/testing/files.ts +35 -0
- package/src/testing/global-declarations.ts +50 -0
- package/src/testing/global-definitions.ts +35 -0
- package/src/testing/index.html +16 -0
- package/src/testing/mocha.ts +162 -0
- package/src/testing/mocharc.cjs +68 -0
- package/src/testing/mocharc.d.cts +7 -0
- package/src/testing/mocks/crypto.ts +70 -0
- package/src/testing/mocks/environment.ts +7 -0
- package/src/testing/mocks/index.ts +10 -0
- package/src/testing/mocks/logging.ts +99 -0
- package/src/testing/mocks/time.ts +294 -0
- package/src/testing/node.ts +114 -0
- package/src/testing/options.ts +58 -0
- package/src/testing/reporter.ts +144 -0
- package/src/testing/runner.ts +98 -0
- package/src/testing/web.ts +174 -0
- package/src/tsconfig.json +14 -0
- package/src/util/bootstrap.mjs +105 -0
- package/src/util/docker.ts +176 -0
- package/src/util/errors.ts +33 -0
- package/src/util/index.ts +8 -0
- package/src/util/node-shims.ts +13 -0
- package/src/util/package.ts +369 -0
- package/src/util/progress.ts +252 -0
- package/src/util/tools-path.cjs +13 -0
- package/src/util/tools-path.d.cts +7 -0
- package/src/util/trace-unhandled.ts +17 -0
- package/src/util/wtf.ts +25 -0
- package/src/versioning/cli.ts +43 -0
- package/src/versioning/versioner.ts +139 -0
- package/test/testing/mocks/MockTimeTest.ts +113 -0
- package/test/tsconfig.json +15 -0
- package/tsc/tsconfig.app.json +7 -0
- package/tsc/tsconfig.base.json +41 -0
- package/tsc/tsconfig.lib.json +12 -0
- package/tsc/tsconfig.test.json +7 -0
- package/tsconfig.json +5 -0
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { parse } from "path";
|
|
7
|
+
import { Docker } from "../util/docker.js";
|
|
8
|
+
import { Package } from "../util/package.js";
|
|
9
|
+
import { PicsFile } from "./chip/pics-file.js";
|
|
10
|
+
var Constants;
|
|
11
|
+
((Constants2) => {
|
|
12
|
+
Constants2.chip = "/connectedhomeip";
|
|
13
|
+
Constants2.chipTool = `${Constants2.chip}/scripts/tests/chipyaml/chiptool.py`;
|
|
14
|
+
Constants2.yamlTests = `${Constants2.chip}/src/app/tests/suites/certification`;
|
|
15
|
+
Constants2.pythonTests = `${Constants2.chip}/src/python_testing`;
|
|
16
|
+
Constants2.python = ["/usr/bin/env", "-S", "python3", "-B"];
|
|
17
|
+
Constants2.pythonRunner = `${Constants2.chip}/scripts/tests/run_python_test.py`;
|
|
18
|
+
Constants2.pics = "/matter.js/packages/tools/build/pics.properties";
|
|
19
|
+
Constants2.chipPics = "/connectedhomeip/src/app/tests/suites/certification/ci-pics-values";
|
|
20
|
+
Constants2.buildTimeout = 6e5;
|
|
21
|
+
Constants2.defaultTimeout = 6e4;
|
|
22
|
+
Constants2.dockerBuildPath = "chip";
|
|
23
|
+
Constants2.dockerName = "matterjs-chip";
|
|
24
|
+
})(Constants || (Constants = {}));
|
|
25
|
+
const State = {
|
|
26
|
+
configured: false,
|
|
27
|
+
options: void 0,
|
|
28
|
+
docker: void 0,
|
|
29
|
+
yamlTests: Array(),
|
|
30
|
+
pythonTests: Array()
|
|
31
|
+
};
|
|
32
|
+
const Config = {
|
|
33
|
+
set options(options) {
|
|
34
|
+
State.options = options;
|
|
35
|
+
},
|
|
36
|
+
get runner() {
|
|
37
|
+
const runner = State.options?.runner;
|
|
38
|
+
if (runner === void 0) {
|
|
39
|
+
throw new Error("No test runner configured");
|
|
40
|
+
}
|
|
41
|
+
return runner;
|
|
42
|
+
},
|
|
43
|
+
async docker() {
|
|
44
|
+
if (State.docker) {
|
|
45
|
+
return State.docker;
|
|
46
|
+
}
|
|
47
|
+
const docker = new Docker();
|
|
48
|
+
const { progress } = Config.runner;
|
|
49
|
+
await progress.run(
|
|
50
|
+
`Build ${progress.emphasize("CHIP image")}`,
|
|
51
|
+
() => docker.buildImage(Constants.dockerName, Package.tools.resolve(Constants.dockerBuildPath))
|
|
52
|
+
);
|
|
53
|
+
State.docker = docker;
|
|
54
|
+
return docker;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
const Chip = {
|
|
58
|
+
/**
|
|
59
|
+
* Configure CHIP testing. Invoke prior to use of other methods.
|
|
60
|
+
*/
|
|
61
|
+
set config(config) {
|
|
62
|
+
Config.options = config;
|
|
63
|
+
},
|
|
64
|
+
/**
|
|
65
|
+
* Initialize. This must run before defining tests to enable test definition via globs.
|
|
66
|
+
*/
|
|
67
|
+
async initialize() {
|
|
68
|
+
await initialize();
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* Define YAML tests. This is a declarative CHIP test defined in a YAML file.
|
|
72
|
+
*/
|
|
73
|
+
yaml(testee, includeGlob, excludeGlob) {
|
|
74
|
+
let tests = filterWithGlob(State.yamlTests, includeGlob);
|
|
75
|
+
if (excludeGlob !== void 0) {
|
|
76
|
+
tests = filterWithGlob(tests, excludeGlob, true);
|
|
77
|
+
}
|
|
78
|
+
if (tests.length === 0) {
|
|
79
|
+
throw new Error(`YAML test glob ${includeGlob} matched no tests`);
|
|
80
|
+
}
|
|
81
|
+
for (const file of tests) {
|
|
82
|
+
implementTest(testee, {
|
|
83
|
+
name: parse(file).base,
|
|
84
|
+
command: [Constants.pythonRunner, file],
|
|
85
|
+
// TODO - complete argument set
|
|
86
|
+
args: {
|
|
87
|
+
"--pics-file": Constants.pics,
|
|
88
|
+
"--discriminator": "1234",
|
|
89
|
+
"--passcode": "20202021"
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
/**
|
|
95
|
+
* Define a "python" test. This is a CHIP test implemented as a python script.
|
|
96
|
+
*/
|
|
97
|
+
python(testee, tester, excludeGlob) {
|
|
98
|
+
if (typeof tester === "string") {
|
|
99
|
+
tester = {
|
|
100
|
+
name: tester
|
|
101
|
+
};
|
|
102
|
+
} else {
|
|
103
|
+
tester = { ...tester };
|
|
104
|
+
}
|
|
105
|
+
tester.args = {
|
|
106
|
+
"--commissioning-method": "on-network",
|
|
107
|
+
"--PICS": Constants.pics,
|
|
108
|
+
"--discriminator": "1234",
|
|
109
|
+
"--passcode": "20202021",
|
|
110
|
+
...tester.args
|
|
111
|
+
};
|
|
112
|
+
let files = filterWithGlob(State.pythonTests, tester.name, false);
|
|
113
|
+
if (excludeGlob !== void 0) {
|
|
114
|
+
files = filterWithGlob(files, excludeGlob, true);
|
|
115
|
+
}
|
|
116
|
+
if (files.length === 0) {
|
|
117
|
+
throw new Error(`Python test glob ${tester.name} matched no tests`);
|
|
118
|
+
}
|
|
119
|
+
for (const file of files) {
|
|
120
|
+
const name = parse(file).name;
|
|
121
|
+
implementTest(testee, { ...tester, name, command: [file] });
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
let containerInitializerInstalled = false;
|
|
126
|
+
function implementTest(testee, tester) {
|
|
127
|
+
if (!containerInitializerInstalled) {
|
|
128
|
+
containerInitializerInstalled = true;
|
|
129
|
+
before(async function() {
|
|
130
|
+
this.timeout(Constants.buildTimeout);
|
|
131
|
+
await initialize();
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
it(tester.description ?? tester.name, async () => {
|
|
135
|
+
await testee.setup();
|
|
136
|
+
await testee.start();
|
|
137
|
+
try {
|
|
138
|
+
await invokeTester(tester);
|
|
139
|
+
} finally {
|
|
140
|
+
try {
|
|
141
|
+
await testee.stop();
|
|
142
|
+
} catch (e) {
|
|
143
|
+
console.warn("Error stopping test subject", e);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}).timeout(tester.timeout ?? Constants.defaultTimeout);
|
|
147
|
+
}
|
|
148
|
+
async function invokeTester(tester) {
|
|
149
|
+
const docker = await Config.docker();
|
|
150
|
+
const args = Array();
|
|
151
|
+
if (tester.command) {
|
|
152
|
+
args.push(...tester.command);
|
|
153
|
+
}
|
|
154
|
+
if (tester.args) {
|
|
155
|
+
args.push(...Object.entries(tester.args).flat());
|
|
156
|
+
}
|
|
157
|
+
const output = docker.run(Constants.dockerName, {
|
|
158
|
+
args,
|
|
159
|
+
env: tester.environment,
|
|
160
|
+
binds: {
|
|
161
|
+
[Package.workspace.path]: "/matter.js"
|
|
162
|
+
},
|
|
163
|
+
network: "host"
|
|
164
|
+
});
|
|
165
|
+
await translateTestOutput(Config.runner, output);
|
|
166
|
+
}
|
|
167
|
+
function deansify(text) {
|
|
168
|
+
return text.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, "");
|
|
169
|
+
}
|
|
170
|
+
async function translateTestOutput(runner, output) {
|
|
171
|
+
let testCount = 0;
|
|
172
|
+
let capture = Array();
|
|
173
|
+
let partial;
|
|
174
|
+
function reportFailures() {
|
|
175
|
+
let testName;
|
|
176
|
+
let testLogs;
|
|
177
|
+
for (const line of capture) {
|
|
178
|
+
const subtestBoundary = deansify(line).match(/\*{5} (Test Step \d+|Test Failure) : (.*)/);
|
|
179
|
+
if (subtestBoundary) {
|
|
180
|
+
if (subtestBoundary[1] === "Test Failure") {
|
|
181
|
+
if (testName === void 0) {
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
runner.reporter.failTest(testName, {
|
|
185
|
+
message: subtestBoundary[2],
|
|
186
|
+
logs: testLogs?.join("\n")
|
|
187
|
+
});
|
|
188
|
+
} else {
|
|
189
|
+
testName = subtestBoundary[2];
|
|
190
|
+
testLogs = [];
|
|
191
|
+
}
|
|
192
|
+
} else if (testLogs) {
|
|
193
|
+
const appOut = line.match(/^.* APP {2}OUT {2}: (.*)$/);
|
|
194
|
+
if (appOut) {
|
|
195
|
+
testLogs.push(appOut[1]);
|
|
196
|
+
continue;
|
|
197
|
+
}
|
|
198
|
+
const testOut = line.match(/(\d{4}-\d\d-\d\d) .*(\d\d:\d\d:\d\d\.\d\d\d) - TEST OUT {2}: (.*)$/);
|
|
199
|
+
if (testOut) {
|
|
200
|
+
if (deansify(testOut[3]).match(/^(?:✗ \d+.\d+ms$|\s+\d+\. Running )/)) {
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
const date = testOut[1];
|
|
204
|
+
const time = testOut[2];
|
|
205
|
+
const message = testOut[3].replace(" ", "").replace(/\t/g, " ");
|
|
206
|
+
testLogs.push(`CHIP ${date} ${time} ${message}`);
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
testLogs.push(line);
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
function processLine(line) {
|
|
214
|
+
MockLogger.injectExternalMessage("CHIP", line);
|
|
215
|
+
line = line.trim();
|
|
216
|
+
const plain = deansify(line);
|
|
217
|
+
const testBoundary = plain.match(
|
|
218
|
+
/^\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\.\d{3} [A-Z ]{7} ([a-zA-Z0-9_]+)\s+- (Starting test|(?:Completed|FAILED) in \d+\.\d+ seconds)$/
|
|
219
|
+
);
|
|
220
|
+
if (testBoundary) {
|
|
221
|
+
if (testBoundary[2].startsWith("Start")) {
|
|
222
|
+
testCount++;
|
|
223
|
+
capture = [];
|
|
224
|
+
runner.reporter.beginRun(testBoundary[1], void 0, false);
|
|
225
|
+
} else if (testBoundary[2].startsWith("Completed")) {
|
|
226
|
+
runner.reporter.endRun();
|
|
227
|
+
} else {
|
|
228
|
+
reportFailures();
|
|
229
|
+
runner.reporter.endRun();
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
capture.push(line);
|
|
233
|
+
}
|
|
234
|
+
for await (const chunk of output) {
|
|
235
|
+
const lines = chunk.split("\n");
|
|
236
|
+
if (partial) {
|
|
237
|
+
lines[0] = partial + lines[0];
|
|
238
|
+
}
|
|
239
|
+
partial = lines.pop();
|
|
240
|
+
for (const line of lines) {
|
|
241
|
+
processLine(line);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
if (partial !== void 0) {
|
|
245
|
+
processLine(partial);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
async function initialize() {
|
|
249
|
+
if (State.configured) {
|
|
250
|
+
return;
|
|
251
|
+
}
|
|
252
|
+
await Config.docker();
|
|
253
|
+
await configurePics();
|
|
254
|
+
await configureYaml();
|
|
255
|
+
await configurePython();
|
|
256
|
+
State.configured = true;
|
|
257
|
+
}
|
|
258
|
+
async function configurePics() {
|
|
259
|
+
const docker = await Config.docker();
|
|
260
|
+
const ciPics = await docker.readFileFromImage(Constants.dockerName, Constants.chipPics);
|
|
261
|
+
const pics = new PicsFile(ciPics, true);
|
|
262
|
+
const overrides = new PicsFile(Package.tools.resolve("src/testing/chip/pics.properties"));
|
|
263
|
+
pics.patch(overrides);
|
|
264
|
+
pics.save(Package.tools.resolve("build/pics.properties"));
|
|
265
|
+
}
|
|
266
|
+
async function configureYaml() {
|
|
267
|
+
const docker = await Config.docker();
|
|
268
|
+
const tests = await docker.resolveGlobFromImage(Constants.dockerName, `${Constants.yamlTests}/Test_*.yaml`);
|
|
269
|
+
State.yamlTests.push(...tests);
|
|
270
|
+
}
|
|
271
|
+
async function configurePython() {
|
|
272
|
+
const docker = await Config.docker();
|
|
273
|
+
const tests = (await docker.resolveGlobFromImage(Constants.dockerName, `${Constants.pythonTests}/*.py`)).filter(
|
|
274
|
+
(name) => name.match(/(?:TC_|Test)[^/]\.py$/)
|
|
275
|
+
);
|
|
276
|
+
State.pythonTests.push(...tests);
|
|
277
|
+
}
|
|
278
|
+
function filterWithGlob(list, glob, invert = false) {
|
|
279
|
+
const globPattern = glob.replace(/\*/g, "[^\\/]+");
|
|
280
|
+
const pattern = new RegExp(`^.*/(?:Test_TC_|TC|Test)${globPattern}\\.(?:py|yaml)$`);
|
|
281
|
+
return list.filter((s) => !!s.match(pattern) === !invert);
|
|
282
|
+
}
|
|
283
|
+
export {
|
|
284
|
+
Chip
|
|
285
|
+
};
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvY2hpcC50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IDIwMjItMjAyNCBNYXR0ZXIuanMgQXV0aG9yc1xuICogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbiAqL1xuXG5pbXBvcnQgeyBwYXJzZSB9IGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBEb2NrZXIgfSBmcm9tIFwiLi4vdXRpbC9kb2NrZXIuanNcIjtcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tIFwiLi4vdXRpbC9wYWNrYWdlLmpzXCI7XG5pbXBvcnQgeyBQaWNzRmlsZSB9IGZyb20gXCIuL2NoaXAvcGljcy1maWxlLmpzXCI7XG5pbXBvcnQgeyB0eXBlIFRlc3RSdW5uZXIgfSBmcm9tIFwiLi9ydW5uZXIuanNcIjtcblxuLyoqXG4gKiBQYXRoIGNvbmZpZ3VyYXRpb24uXG4gKi9cbm5hbWVzcGFjZSBDb25zdGFudHMge1xuICAgIGV4cG9ydCBjb25zdCBjaGlwID0gXCIvY29ubmVjdGVkaG9tZWlwXCI7XG4gICAgZXhwb3J0IGNvbnN0IGNoaXBUb29sID0gYCR7Y2hpcH0vc2NyaXB0cy90ZXN0cy9jaGlweWFtbC9jaGlwdG9vbC5weWA7XG4gICAgZXhwb3J0IGNvbnN0IHlhbWxUZXN0cyA9IGAke2NoaXB9L3NyYy9hcHAvdGVzdHMvc3VpdGVzL2NlcnRpZmljYXRpb25gO1xuICAgIGV4cG9ydCBjb25zdCBweXRob25UZXN0cyA9IGAke2NoaXB9L3NyYy9weXRob25fdGVzdGluZ2A7XG4gICAgZXhwb3J0IGNvbnN0IHB5dGhvbiA9IFtcIi91c3IvYmluL2VudlwiLCBcIi1TXCIsIFwicHl0aG9uM1wiLCBcIi1CXCJdO1xuICAgIGV4cG9ydCBjb25zdCBweXRob25SdW5uZXIgPSBgJHtjaGlwfS9zY3JpcHRzL3Rlc3RzL3J1bl9weXRob25fdGVzdC5weWA7XG5cbiAgICBleHBvcnQgY29uc3QgcGljcyA9IFwiL21hdHRlci5qcy9wYWNrYWdlcy90b29scy9idWlsZC9waWNzLnByb3BlcnRpZXNcIjtcbiAgICBleHBvcnQgY29uc3QgY2hpcFBpY3MgPSBcIi9jb25uZWN0ZWRob21laXAvc3JjL2FwcC90ZXN0cy9zdWl0ZXMvY2VydGlmaWNhdGlvbi9jaS1waWNzLXZhbHVlc1wiO1xuICAgIGV4cG9ydCBjb25zdCBidWlsZFRpbWVvdXQgPSA2MDBfMDAwO1xuICAgIGV4cG9ydCBjb25zdCBkZWZhdWx0VGltZW91dCA9IDYwXzAwMDtcbiAgICBleHBvcnQgY29uc3QgZG9ja2VyQnVpbGRQYXRoID0gXCJjaGlwXCI7XG4gICAgZXhwb3J0IGNvbnN0IGRvY2tlck5hbWUgPSBcIm1hdHRlcmpzLWNoaXBcIjtcbn1cblxuLyoqXG4gKiBJbnRlcm5hbCBzdGF0ZS5cbiAqL1xuY29uc3QgU3RhdGUgPSB7XG4gICAgY29uZmlndXJlZDogZmFsc2UsXG4gICAgb3B0aW9uczogdW5kZWZpbmVkIGFzIENoaXAuT3B0aW9ucyB8IHVuZGVmaW5lZCxcbiAgICBkb2NrZXI6IHVuZGVmaW5lZCBhcyBEb2NrZXIgfCB1bmRlZmluZWQsXG4gICAgeWFtbFRlc3RzOiBBcnJheTxzdHJpbmc+KCksXG4gICAgcHl0aG9uVGVzdHM6IEFycmF5PHN0cmluZz4oKSxcbn07XG5cbi8qKlxuICogSW50ZXJuYWwgY29uZmlndXJhdGlvbiBtYW5hZ2VtZW50LlxuICovXG5jb25zdCBDb25maWcgPSB7XG4gICAgc2V0IG9wdGlvbnMob3B0aW9uczogQ2hpcC5PcHRpb25zKSB7XG4gICAgICAgIFN0YXRlLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgIH0sXG5cbiAgICBnZXQgcnVubmVyKCkge1xuICAgICAgICBjb25zdCBydW5uZXIgPSBTdGF0ZS5vcHRpb25zPy5ydW5uZXI7XG5cbiAgICAgICAgaWYgKHJ1bm5lciA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJObyB0ZXN0IHJ1bm5lciBjb25maWd1cmVkXCIpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJ1bm5lcjtcbiAgICB9LFxuXG4gICAgYXN5bmMgZG9ja2VyKCkge1xuICAgICAgICBpZiAoU3RhdGUuZG9ja2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RhdGUuZG9ja2VyO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZG9ja2VyID0gbmV3IERvY2tlcigpO1xuXG4gICAgICAgIGNvbnN0IHsgcHJvZ3Jlc3MgfSA9IENvbmZpZy5ydW5uZXI7XG5cbiAgICAgICAgYXdhaXQgcHJvZ3Jlc3MucnVuKGBCdWlsZCAke3Byb2dyZXNzLmVtcGhhc2l6ZShcIkNISVAgaW1hZ2VcIil9YCwgKCkgPT5cbiAgICAgICAgICAgIGRvY2tlci5idWlsZEltYWdlKENvbnN0YW50cy5kb2NrZXJOYW1lLCBQYWNrYWdlLnRvb2xzLnJlc29sdmUoQ29uc3RhbnRzLmRvY2tlckJ1aWxkUGF0aCkpLFxuICAgICAgICApO1xuXG4gICAgICAgIFN0YXRlLmRvY2tlciA9IGRvY2tlcjtcblxuICAgICAgICByZXR1cm4gZG9ja2VyO1xuICAgIH0sXG59O1xuXG4vKipcbiAqIENISVAgdGVzdGluZyBjb250cm9sbGVyLiAgXCJDSElQIHRlc3RzXCIgYXJlIG9mZmljaWFsIHRlc3RzIGltcGxlbWVudGVkIGluIHRoZSBjb25uZWN0ZWRob21laXAgcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGNvbnN0IENoaXAgPSB7XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJlIENISVAgdGVzdGluZy4gIEludm9rZSBwcmlvciB0byB1c2Ugb2Ygb3RoZXIgbWV0aG9kcy5cbiAgICAgKi9cbiAgICBzZXQgY29uZmlnKGNvbmZpZzogQ2hpcC5PcHRpb25zKSB7XG4gICAgICAgIENvbmZpZy5vcHRpb25zID0gY29uZmlnO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsaXplLiAgVGhpcyBtdXN0IHJ1biBiZWZvcmUgZGVmaW5pbmcgdGVzdHMgdG8gZW5hYmxlIHRlc3QgZGVmaW5pdGlvbiB2aWEgZ2xvYnMuXG4gICAgICovXG4gICAgYXN5bmMgaW5pdGlhbGl6ZSgpIHtcbiAgICAgICAgYXdhaXQgaW5pdGlhbGl6ZSgpO1xuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgWUFNTCB0ZXN0cy4gIFRoaXMgaXMgYSBkZWNsYXJhdGl2ZSBDSElQIHRlc3QgZGVmaW5lZCBpbiBhIFlBTUwgZmlsZS5cbiAgICAgKi9cbiAgICB5YW1sKHRlc3RlZTogQ2hpcC5UZXN0ZWUsIGluY2x1ZGVHbG9iOiBzdHJpbmcsIGV4Y2x1ZGVHbG9iPzogc3RyaW5nKSB7XG4gICAgICAgIGxldCB0ZXN0cyA9IGZpbHRlcldpdGhHbG9iKFN0YXRlLnlhbWxUZXN0cywgaW5jbHVkZUdsb2IpO1xuICAgICAgICBpZiAoZXhjbHVkZUdsb2IgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGVzdHMgPSBmaWx0ZXJXaXRoR2xvYih0ZXN0cywgZXhjbHVkZUdsb2IsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRlc3RzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBZQU1MIHRlc3QgZ2xvYiAke2luY2x1ZGVHbG9ifSBtYXRjaGVkIG5vIHRlc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgdGVzdHMpIHtcbiAgICAgICAgICAgIGltcGxlbWVudFRlc3QodGVzdGVlLCB7XG4gICAgICAgICAgICAgICAgbmFtZTogcGFyc2UoZmlsZSkuYmFzZSxcblxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6IFtDb25zdGFudHMucHl0aG9uUnVubmVyLCBmaWxlXSxcblxuICAgICAgICAgICAgICAgIC8vIFRPRE8gLSBjb21wbGV0ZSBhcmd1bWVudCBzZXRcbiAgICAgICAgICAgICAgICBhcmdzOiB7XG4gICAgICAgICAgICAgICAgICAgIFwiLS1waWNzLWZpbGVcIjogQ29uc3RhbnRzLnBpY3MsXG4gICAgICAgICAgICAgICAgICAgIFwiLS1kaXNjcmltaW5hdG9yXCI6IFwiMTIzNFwiLFxuICAgICAgICAgICAgICAgICAgICBcIi0tcGFzc2NvZGVcIjogXCIyMDIwMjAyMVwiLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgYSBcInB5dGhvblwiIHRlc3QuICBUaGlzIGlzIGEgQ0hJUCB0ZXN0IGltcGxlbWVudGVkIGFzIGEgcHl0aG9uIHNjcmlwdC5cbiAgICAgKi9cbiAgICBweXRob24odGVzdGVlOiBDaGlwLlRlc3RlZSwgdGVzdGVyOiBDaGlwLlRlc3RTZWxlY3Rpb24sIGV4Y2x1ZGVHbG9iPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0eXBlb2YgdGVzdGVyID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICB0ZXN0ZXIgPSB7XG4gICAgICAgICAgICAgICAgbmFtZTogdGVzdGVyLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRlc3RlciA9IHsgLi4udGVzdGVyIH07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUT0RPIC0gY29tcGxldGUgYXJndW1lbnRzXG4gICAgICAgIHRlc3Rlci5hcmdzID0ge1xuICAgICAgICAgICAgXCItLWNvbW1pc3Npb25pbmctbWV0aG9kXCI6IFwib24tbmV0d29ya1wiLFxuICAgICAgICAgICAgXCItLVBJQ1NcIjogQ29uc3RhbnRzLnBpY3MsXG4gICAgICAgICAgICBcIi0tZGlzY3JpbWluYXRvclwiOiBcIjEyMzRcIixcbiAgICAgICAgICAgIFwiLS1wYXNzY29kZVwiOiBcIjIwMjAyMDIxXCIsXG4gICAgICAgICAgICAuLi50ZXN0ZXIuYXJncyxcbiAgICAgICAgfTtcblxuICAgICAgICBsZXQgZmlsZXMgPSBmaWx0ZXJXaXRoR2xvYihTdGF0ZS5weXRob25UZXN0cywgdGVzdGVyLm5hbWUsIGZhbHNlKTtcbiAgICAgICAgaWYgKGV4Y2x1ZGVHbG9iICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZpbGVzID0gZmlsdGVyV2l0aEdsb2IoZmlsZXMsIGV4Y2x1ZGVHbG9iLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgUHl0aG9uIHRlc3QgZ2xvYiAke3Rlc3Rlci5uYW1lfSBtYXRjaGVkIG5vIHRlc3RzYCk7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBwYXJzZShmaWxlKS5uYW1lO1xuICAgICAgICAgICAgaW1wbGVtZW50VGVzdCh0ZXN0ZWUsIHsgLi4udGVzdGVyLCBuYW1lLCBjb21tYW5kOiBbZmlsZV0gfSk7XG4gICAgICAgIH1cbiAgICB9LFxufTtcblxubGV0IGNvbnRhaW5lckluaXRpYWxpemVySW5zdGFsbGVkID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGltcGxlbWVudFRlc3QodGVzdGVlOiBDaGlwLlRlc3RlZSwgdGVzdGVyOiBDaGlwLlRlc3Rlcikge1xuICAgIGlmICghY29udGFpbmVySW5pdGlhbGl6ZXJJbnN0YWxsZWQpIHtcbiAgICAgICAgY29udGFpbmVySW5pdGlhbGl6ZXJJbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICBiZWZvcmUoYXN5bmMgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdGhpcy50aW1lb3V0KENvbnN0YW50cy5idWlsZFRpbWVvdXQpO1xuICAgICAgICAgICAgYXdhaXQgaW5pdGlhbGl6ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpdCh0ZXN0ZXIuZGVzY3JpcHRpb24gPz8gdGVzdGVyLm5hbWUsIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgdGVzdGVlLnNldHVwKCk7XG4gICAgICAgIGF3YWl0IHRlc3RlZS5zdGFydCgpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBpbnZva2VUZXN0ZXIodGVzdGVyKTtcbiAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGVzdGVlLnN0b3AoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXCJFcnJvciBzdG9wcGluZyB0ZXN0IHN1YmplY3RcIiwgZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KS50aW1lb3V0KHRlc3Rlci50aW1lb3V0ID8/IENvbnN0YW50cy5kZWZhdWx0VGltZW91dCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGludm9rZVRlc3Rlcih0ZXN0ZXI6IENoaXAuVGVzdGVyKSB7XG4gICAgY29uc3QgZG9ja2VyID0gYXdhaXQgQ29uZmlnLmRvY2tlcigpO1xuXG4gICAgY29uc3QgYXJncyA9IEFycmF5PHN0cmluZz4oKTtcbiAgICBpZiAodGVzdGVyLmNvbW1hbmQpIHtcbiAgICAgICAgYXJncy5wdXNoKC4uLnRlc3Rlci5jb21tYW5kKTtcbiAgICB9XG4gICAgaWYgKHRlc3Rlci5hcmdzKSB7XG4gICAgICAgIGFyZ3MucHVzaCguLi5PYmplY3QuZW50cmllcyh0ZXN0ZXIuYXJncykuZmxhdCgpKTtcbiAgICB9XG5cbiAgICAvLyBUT0RPIC0gZGVmaW5lIGRvY2tlciBuZXR3b3JrIHRvIG1hdGNoIENISVAncyB0ZXN0aW5nIGluZnJhc3RydWN0dXJlXG4gICAgY29uc3Qgb3V0cHV0ID0gZG9ja2VyLnJ1bihDb25zdGFudHMuZG9ja2VyTmFtZSwge1xuICAgICAgICBhcmdzLFxuICAgICAgICBlbnY6IHRlc3Rlci5lbnZpcm9ubWVudCxcbiAgICAgICAgYmluZHM6IHtcbiAgICAgICAgICAgIFtQYWNrYWdlLndvcmtzcGFjZS5wYXRoXTogXCIvbWF0dGVyLmpzXCIsXG4gICAgICAgIH0sXG4gICAgICAgIG5ldHdvcms6IFwiaG9zdFwiLFxuICAgIH0pO1xuXG4gICAgYXdhaXQgdHJhbnNsYXRlVGVzdE91dHB1dChDb25maWcucnVubmVyLCBvdXRwdXQpO1xufVxuXG5leHBvcnQgbmFtZXNwYWNlIENoaXAge1xuICAgIC8qKlxuICAgICAqIFRoZSB0ZXN0IHN1YmplY3QuXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBUZXN0ZWUge1xuICAgICAgICBzZXR1cCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBzdGFydCgpOiBQcm9taXNlPHZvaWQ+O1xuICAgICAgICBzdG9wKCk6IFByb21pc2U8dm9pZD47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHRlc3QgaW1wbGVtZW50YXRpb24uXG4gICAgICovXG4gICAgZXhwb3J0IHR5cGUgVGVzdFNlbGVjdGlvbiA9IFRlc3RlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gcmVxdWlyZWQgZnJvbSB0ZXN0aW5nIHByb2dyYW0uXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICAgICAgcnVubmVyOiBUZXN0UnVubmVyO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGFpbHMgb2YgaG93IHRvIHJ1biBhIHNwZWNpZmljIHRlc3QuXG4gICAgICovXG4gICAgZXhwb3J0IGludGVyZmFjZSBUZXN0ZXIge1xuICAgICAgICBuYW1lOiBzdHJpbmc7XG4gICAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgICAgICBjb21tYW5kPzogc3RyaW5nW107XG4gICAgICAgIGFyZ3M/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAgICAgICB0aW1lb3V0PzogbnVtYmVyO1xuICAgICAgICBlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgfVxufVxuXG5leHBvcnQgdHlwZSBDaGlwID0gdHlwZW9mIENoaXA7XG5cbi8qKlxuICogU3RyaXAgQU5TSSBlc2NhcGUgY29kZXMgZnJvbSBhIHN0cmluZy5cbiAqL1xuZnVuY3Rpb24gZGVhbnNpZnkodGV4dDogc3RyaW5nKSB7XG4gICAgLy8gQ3JlZGl0IHRvIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI1MjQ1NzE2L3JlbW92ZS1hbGwtYW5zaS1jb2xvcnMtc3R5bGVzLWZyb20tc3RyaW5nc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gICAgcmV0dXJuIHRleHQucmVwbGFjZSgvW1xcdTAwMWJcXHUwMDliXVtbKCkjOz9dKig/OlswLTldezEsNH0oPzo7WzAtOV17MCw0fSkqKT9bMC05QS1PUlpjZi1ucXJ5PT48XS9nLCBcIlwiKTtcbn1cblxuLy8gVE9ETyAtIGNhbiBzaW1wbGlmeSBiZWNhdXNlIHdlJ3ZlIHJlbW92ZWQgdHdvIGxheWVycyBvZiBDSElQIGV4dHJhY3Rpb24uXG4vL1xuLy8gVE9ETyAtIEFkYXB0YXRpb24gdG8gc3VwcG9ydCBib3RoIHB5dGhvbiBhbmQgeWFtbCB0ZXN0c1xuYXN5bmMgZnVuY3Rpb24gdHJhbnNsYXRlVGVzdE91dHB1dChydW5uZXI6IFRlc3RSdW5uZXIsIG91dHB1dDogQXN5bmNJdGVyYWJsZTxzdHJpbmc+KSB7XG4gICAgbGV0IHRlc3RDb3VudCA9IDA7XG5cbiAgICBsZXQgY2FwdHVyZSA9IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGxldCBwYXJ0aWFsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICAvKipcbiAgICAgKiBFeHRyYWN0IGZhaWx1cmUgZGV0YWlscyBmcm9tIHRoZSB0ZXN0IHJ1bm5lcidzIG91dHB1dCBzcGhhZ2hldHRpLlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHJlcG9ydEZhaWx1cmVzKCkge1xuICAgICAgICBsZXQgdGVzdE5hbWU6IHVuZGVmaW5lZCB8IHN0cmluZztcbiAgICAgICAgbGV0IHRlc3RMb2dzOiB1bmRlZmluZWQgfCBzdHJpbmdbXTtcbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGNhcHR1cmUpIHtcbiAgICAgICAgICAgIGNvbnN0IHN1YnRlc3RCb3VuZGFyeSA9IGRlYW5zaWZ5KGxpbmUpLm1hdGNoKC9cXCp7NX0gKFRlc3QgU3RlcCBcXGQrfFRlc3QgRmFpbHVyZSkgOiAoLiopLyk7XG4gICAgICAgICAgICBpZiAoc3VidGVzdEJvdW5kYXJ5KSB7XG4gICAgICAgICAgICAgICAgaWYgKHN1YnRlc3RCb3VuZGFyeVsxXSA9PT0gXCJUZXN0IEZhaWx1cmVcIikge1xuICAgICAgICAgICAgICAgICAgICBpZiAodGVzdE5hbWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcnVubmVyLnJlcG9ydGVyLmZhaWxUZXN0KHRlc3ROYW1lLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiBzdWJ0ZXN0Qm91bmRhcnlbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2dzOiB0ZXN0TG9ncz8uam9pbihcIlxcblwiKSxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGVzdE5hbWUgPSBzdWJ0ZXN0Qm91bmRhcnlbMl07XG4gICAgICAgICAgICAgICAgICAgIHRlc3RMb2dzID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh0ZXN0TG9ncykge1xuICAgICAgICAgICAgICAgIC8vIEV4dHJhY3QgbWF0dGVyLmpzIGxvZ3NcbiAgICAgICAgICAgICAgICBjb25zdCBhcHBPdXQgPSBsaW5lLm1hdGNoKC9eLiogQVBQIHsyfU9VVCB7Mn06ICguKikkLyk7XG4gICAgICAgICAgICAgICAgaWYgKGFwcE91dCkge1xuICAgICAgICAgICAgICAgICAgICB0ZXN0TG9ncy5wdXNoKGFwcE91dFsxXSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIEV4dHJhY3QgZGlhZ25vc3RpY3MgZnJvbSB0aGUgdGVzdCBmcmFtZXdvcmtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXN0T3V0ID0gbGluZS5tYXRjaCgvKFxcZHs0fS1cXGRcXGQtXFxkXFxkKSAuKihcXGRcXGQ6XFxkXFxkOlxcZFxcZFxcLlxcZFxcZFxcZCkgLSBURVNUIE9VVCB7Mn06ICguKikkLyk7XG4gICAgICAgICAgICAgICAgaWYgKHRlc3RPdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRlYW5zaWZ5KHRlc3RPdXRbM10pLm1hdGNoKC9eKD86XHUyNzE3IFxcZCsuXFxkK21zJHxcXHMrXFxkK1xcLiBSdW5uaW5nICkvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gdGVzdE91dFsxXTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdGltZSA9IHRlc3RPdXRbMl07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0ZXN0T3V0WzNdLnJlcGxhY2UoXCJcXHRcXHQgICAgXCIsIFwiXCIpLnJlcGxhY2UoL1xcdC9nLCBcIiAgXCIpO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIFRlc3Qgc3VpdGUgbG9ncyBkYXRlIGFuZCB0aW1lIG9mIHJlcG9ydCBwbHVzIHRpbWUgb2YgbG9nIG1lc3NhZ2UuICBXZSBvbmx5IGNhcmUgYWJvdXQgdGhlIHNlY29uZFxuICAgICAgICAgICAgICAgICAgICAvLyB0aW1lIHNvIGlnbm9yZSB0aGUgZmlyc3RcbiAgICAgICAgICAgICAgICAgICAgdGVzdExvZ3MucHVzaChgQ0hJUCAke2RhdGV9ICR7dGltZX0gJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCByZWNvZ25pemUgdGhlIGxpbmU7IHBhc3MgYXMtaXNcbiAgICAgICAgICAgICAgICB0ZXN0TG9ncy5wdXNoKGxpbmUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2VzcyB0ZXN0IHN1aXRlIG91dHB1dC5cbiAgICAgKlxuICAgICAqIFVuZm9ydHVuYXRlbHkgcnVuX3Rlc3Rfc3VpdGUucHkgaGlkZXMgbW9zdCBvdXRwdXQgdW5sZXNzIHRoZSB0ZXN0IGNyYXNoZXMgc28gd2UgY2FuJ3QgY291bnQgc3VidGVzdHMgcmVsaWFibHlcbiAgICAgKiB3aXRob3V0IFBSIG9yIHJlcGxhY2luZyB3aXRoIG91ciBvd24gdGhpbmcuICBUaGUgaW5kaXZpZHVhbCB0ZXN0IHJ1bm5lcnMgZG8gcmVwb3J0IHRoaXMgdGhvdWdoIHNvIHdlIGNhbiByZXBvcnRcbiAgICAgKiBwZXItdGVzdCBpbmZvcm1hdGlvbiBmcm9tIGZhaWx1cmUgb3V0cHV0LlxuICAgICAqL1xuICAgIGZ1bmN0aW9uIHByb2Nlc3NMaW5lKGxpbmU6IHN0cmluZykge1xuICAgICAgICAvLyBJbmplY3QgdGhlIG1lc3NhZ2UgaW50byBvdXIgbG9nIHN0cmVhbVxuICAgICAgICBNb2NrTG9nZ2VyLmluamVjdEV4dGVybmFsTWVzc2FnZShcIkNISVBcIiwgbGluZSk7XG5cbiAgICAgICAgbGluZSA9IGxpbmUudHJpbSgpO1xuICAgICAgICBjb25zdCBwbGFpbiA9IGRlYW5zaWZ5KGxpbmUpO1xuICAgICAgICBjb25zdCB0ZXN0Qm91bmRhcnkgPSBwbGFpbi5tYXRjaChcbiAgICAgICAgICAgIC9eXFxkezR9LVxcZFxcZC1cXGRcXGQgXFxkXFxkOlxcZFxcZDpcXGRcXGRcXC5cXGR7M30gW0EtWiBdezd9IChbYS16QS1aMC05X10rKVxccystIChTdGFydGluZyB0ZXN0fCg/OkNvbXBsZXRlZHxGQUlMRUQpIGluIFxcZCtcXC5cXGQrIHNlY29uZHMpJC8sXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHRlc3RCb3VuZGFyeSkge1xuICAgICAgICAgICAgaWYgKHRlc3RCb3VuZGFyeVsyXS5zdGFydHNXaXRoKFwiU3RhcnRcIikpIHtcbiAgICAgICAgICAgICAgICB0ZXN0Q291bnQrKztcbiAgICAgICAgICAgICAgICBjYXB0dXJlID0gW107XG4gICAgICAgICAgICAgICAgcnVubmVyLnJlcG9ydGVyLmJlZ2luUnVuKHRlc3RCb3VuZGFyeVsxXSwgdW5kZWZpbmVkLCBmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRlc3RCb3VuZGFyeVsyXS5zdGFydHNXaXRoKFwiQ29tcGxldGVkXCIpKSB7XG4gICAgICAgICAgICAgICAgcnVubmVyLnJlcG9ydGVyLmVuZFJ1bigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXBvcnRGYWlsdXJlcygpO1xuICAgICAgICAgICAgICAgIHJ1bm5lci5yZXBvcnRlci5lbmRSdW4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNhcHR1cmUucHVzaChsaW5lKTtcbiAgICB9XG5cbiAgICBmb3IgYXdhaXQgKGNvbnN0IGNodW5rIG9mIG91dHB1dCkge1xuICAgICAgICBjb25zdCBsaW5lcyA9IGNodW5rLnNwbGl0KFwiXFxuXCIpO1xuICAgICAgICBpZiAocGFydGlhbCkge1xuICAgICAgICAgICAgbGluZXNbMF0gPSBwYXJ0aWFsICsgbGluZXNbMF07XG4gICAgICAgIH1cblxuICAgICAgICBwYXJ0aWFsID0gbGluZXMucG9wKCk7XG5cbiAgICAgICAgZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7XG4gICAgICAgICAgICBwcm9jZXNzTGluZShsaW5lKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwYXJ0aWFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJvY2Vzc0xpbmUocGFydGlhbCk7XG4gICAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbml0aWFsaXplKCkge1xuICAgIGlmIChTdGF0ZS5jb25maWd1cmVkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBhd2FpdCBDb25maWcuZG9ja2VyKCk7XG4gICAgYXdhaXQgY29uZmlndXJlUGljcygpO1xuICAgIGF3YWl0IGNvbmZpZ3VyZVlhbWwoKTtcbiAgICBhd2FpdCBjb25maWd1cmVQeXRob24oKTtcblxuICAgIFN0YXRlLmNvbmZpZ3VyZWQgPSB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjb25maWd1cmVQaWNzKCkge1xuICAgIGNvbnN0IGRvY2tlciA9IGF3YWl0IENvbmZpZy5kb2NrZXIoKTtcbiAgICBjb25zdCBjaVBpY3MgPSBhd2FpdCBkb2NrZXIucmVhZEZpbGVGcm9tSW1hZ2UoQ29uc3RhbnRzLmRvY2tlck5hbWUsIENvbnN0YW50cy5jaGlwUGljcyk7XG4gICAgY29uc3QgcGljcyA9IG5ldyBQaWNzRmlsZShjaVBpY3MsIHRydWUpO1xuXG4gICAgY29uc3Qgb3ZlcnJpZGVzID0gbmV3IFBpY3NGaWxlKFBhY2thZ2UudG9vbHMucmVzb2x2ZShcInNyYy90ZXN0aW5nL2NoaXAvcGljcy5wcm9wZXJ0aWVzXCIpKTtcbiAgICBwaWNzLnBhdGNoKG92ZXJyaWRlcyk7XG5cbiAgICBwaWNzLnNhdmUoUGFja2FnZS50b29scy5yZXNvbHZlKFwiYnVpbGQvcGljcy5wcm9wZXJ0aWVzXCIpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlndXJlWWFtbCgpIHtcbiAgICBjb25zdCBkb2NrZXIgPSBhd2FpdCBDb25maWcuZG9ja2VyKCk7XG5cbiAgICBjb25zdCB0ZXN0cyA9IGF3YWl0IGRvY2tlci5yZXNvbHZlR2xvYkZyb21JbWFnZShDb25zdGFudHMuZG9ja2VyTmFtZSwgYCR7Q29uc3RhbnRzLnlhbWxUZXN0c30vVGVzdF8qLnlhbWxgKTtcblxuICAgIFN0YXRlLnlhbWxUZXN0cy5wdXNoKC4uLnRlc3RzKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gY29uZmlndXJlUHl0aG9uKCkge1xuICAgIGNvbnN0IGRvY2tlciA9IGF3YWl0IENvbmZpZy5kb2NrZXIoKTtcblxuICAgIGNvbnN0IHRlc3RzID0gKGF3YWl0IGRvY2tlci5yZXNvbHZlR2xvYkZyb21JbWFnZShDb25zdGFudHMuZG9ja2VyTmFtZSwgYCR7Q29uc3RhbnRzLnB5dGhvblRlc3RzfS8qLnB5YCkpLmZpbHRlcihcbiAgICAgICAgbmFtZSA9PiBuYW1lLm1hdGNoKC8oPzpUQ198VGVzdClbXi9dXFwucHkkLyksXG4gICAgKTtcblxuICAgIFN0YXRlLnB5dGhvblRlc3RzLnB1c2goLi4udGVzdHMpO1xufVxuXG5mdW5jdGlvbiBmaWx0ZXJXaXRoR2xvYihsaXN0OiBzdHJpbmdbXSwgZ2xvYjogc3RyaW5nLCBpbnZlcnQgPSBmYWxzZSkge1xuICAgIGNvbnN0IGdsb2JQYXR0ZXJuID0gZ2xvYi5yZXBsYWNlKC9cXCovZywgXCJbXlxcXFwvXStcIik7XG4gICAgY29uc3QgcGF0dGVybiA9IG5ldyBSZWdFeHAoYF4uKi8oPzpUZXN0X1RDX3xUQ3xUZXN0KSR7Z2xvYlBhdHRlcm59XFxcXC4oPzpweXx5YW1sKSRgKTtcbiAgICByZXR1cm4gbGlzdC5maWx0ZXIocyA9PiAhIXMubWF0Y2gocGF0dGVybikgPT09ICFpbnZlcnQpO1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLFNBQVMsYUFBYTtBQUN0QixTQUFTLGNBQWM7QUFDdkIsU0FBUyxlQUFlO0FBQ3hCLFNBQVMsZ0JBQWdCO0FBTXpCLElBQVU7QUFBQSxDQUFWLENBQVVBLGVBQVY7QUFDVyxFQUFNQSxXQUFBLE9BQU87QUFDYixFQUFNQSxXQUFBLFdBQVcsR0FBR0EsV0FBQSxJQUFJO0FBQ3hCLEVBQU1BLFdBQUEsWUFBWSxHQUFHQSxXQUFBLElBQUk7QUFDekIsRUFBTUEsV0FBQSxjQUFjLEdBQUdBLFdBQUEsSUFBSTtB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/testing/chip.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["Constants"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "../util/node-shims.js";
|
|
7
|
+
import "./global-definitions.js";
|
|
8
|
+
export declare function main(argv?: string[]): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/testing/cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,uBAAuB,CAAC;AAC/B,OAAO,yBAAyB,CAAC;AAiBjC,wBAAsB,IAAI,CAAC,IAAI,WAAe,iBAiG7C"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import "../util/node-shims.js";
|
|
7
|
+
import "./global-definitions.js";
|
|
8
|
+
import yargs from "yargs";
|
|
9
|
+
import { hideBin } from "yargs/helpers";
|
|
10
|
+
import { Builder } from "../building/builder.js";
|
|
11
|
+
import { Graph } from "../building/graph.js";
|
|
12
|
+
import { Project } from "../building/project.js";
|
|
13
|
+
import { TestRunner } from "./runner.js";
|
|
14
|
+
var TestType = /* @__PURE__ */ ((TestType2) => {
|
|
15
|
+
TestType2["esm"] = "esm";
|
|
16
|
+
TestType2["cjs"] = "cjs";
|
|
17
|
+
TestType2["web"] = "web";
|
|
18
|
+
return TestType2;
|
|
19
|
+
})(TestType || {});
|
|
20
|
+
Error.stackTraceLimit = 50;
|
|
21
|
+
async function main(argv = process.argv) {
|
|
22
|
+
const testTypes = /* @__PURE__ */ new Set();
|
|
23
|
+
let manual = false;
|
|
24
|
+
const args = await yargs(hideBin(argv)).usage("Runs tests in packages adhering to matter.js standards.").option("prefix", {
|
|
25
|
+
alias: "p",
|
|
26
|
+
default: ".",
|
|
27
|
+
type: "string",
|
|
28
|
+
describe: "specify directory of package to test"
|
|
29
|
+
}).option("web", {
|
|
30
|
+
alias: "w",
|
|
31
|
+
default: false,
|
|
32
|
+
type: "boolean",
|
|
33
|
+
describe: "enable web tests in default test mode"
|
|
34
|
+
}).option("spec", {
|
|
35
|
+
type: "array",
|
|
36
|
+
string: true,
|
|
37
|
+
describe: "One or more paths of tests to run",
|
|
38
|
+
default: "./test/**/*Test.ts"
|
|
39
|
+
}).option("all-logs", { type: "boolean", describe: "Emit log messages in real time" }).option("debug", { type: "boolean", describe: "Enable Mocha debugging" }).option("environment", { alias: "e", type: "string", describe: "Select named test environment" }).option("fgrep", { alias: "f", type: "string", describe: "Only run tests matching this string" }).option("force-exit", { type: "boolean", describe: "Force Node to exit after tests complete" }).option("grep", { alias: "g", type: "string", describe: "Only run tests matching this regexp" }).option("invert", { alias: "i", type: "boolean", describe: "Inverts --grep and --fgrep matches" }).option("profile", { type: "boolean", describe: "Write profiling data to build/profiles (node only)" }).option("wtf", { type: "boolean", describe: "Enlist wtfnode to detect test leaks" }).option("trace-unhandled", { type: "boolean", describe: "Detail unhandled rejections with trace-unhandled" }).command("*", "run all supported test types").command("esm", "run tests on node (ES6 modules)", () => testTypes.add("esm" /* esm */)).command("cjs", "run tests on node (CommonJS modules)", () => testTypes.add("cjs" /* cjs */)).command("web", "run tests in web browser", () => testTypes.add("web" /* web */)).command("manual", "start test server and print URL for manual testing", () => {
|
|
40
|
+
testTypes.add("web" /* web */);
|
|
41
|
+
manual = true;
|
|
42
|
+
}).strict().argv;
|
|
43
|
+
let packageLocation = args.prefix;
|
|
44
|
+
if (packageLocation === "." && args.spec) {
|
|
45
|
+
const firstSpec = Array.isArray(args.spec) ? args.spec[0] : args.spec;
|
|
46
|
+
packageLocation = firstSpec;
|
|
47
|
+
}
|
|
48
|
+
const project = new Project(packageLocation);
|
|
49
|
+
process.chdir(project.pkg.path);
|
|
50
|
+
if (!testTypes.size) {
|
|
51
|
+
if (project.pkg.supportsEsm) {
|
|
52
|
+
testTypes.add("esm" /* esm */);
|
|
53
|
+
}
|
|
54
|
+
if (project.pkg.supportsCjs) {
|
|
55
|
+
testTypes.add("cjs" /* cjs */);
|
|
56
|
+
}
|
|
57
|
+
if (args.web) {
|
|
58
|
+
testTypes.add("web" /* web */);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const builder = new Builder();
|
|
62
|
+
const dependencies = await Graph.forProject(packageLocation);
|
|
63
|
+
if (dependencies) {
|
|
64
|
+
await dependencies.build(builder, false);
|
|
65
|
+
} else {
|
|
66
|
+
await builder.build(project);
|
|
67
|
+
}
|
|
68
|
+
const progress = project.pkg.start("Testing");
|
|
69
|
+
const runner = new TestRunner(project.pkg, progress, args);
|
|
70
|
+
if (testTypes.has("esm" /* esm */)) {
|
|
71
|
+
await runner.runNode("esm");
|
|
72
|
+
}
|
|
73
|
+
if (testTypes.has("cjs" /* cjs */)) {
|
|
74
|
+
await runner.runNode("cjs");
|
|
75
|
+
}
|
|
76
|
+
if (testTypes.has("web" /* web */)) {
|
|
77
|
+
await runner.runWeb(manual);
|
|
78
|
+
}
|
|
79
|
+
progress.shutdown();
|
|
80
|
+
if (args.forceExit) {
|
|
81
|
+
process.exit(0);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export {
|
|
85
|
+
main
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvY2xpLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgMjAyMi0yMDI0IE1hdHRlci5qcyBBdXRob3JzXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuICovXG5cbmltcG9ydCBcIi4uL3V0aWwvbm9kZS1zaGltcy5qc1wiO1xuaW1wb3J0IFwiLi9nbG9iYWwtZGVmaW5pdGlvbnMuanNcIjtcblxuaW1wb3J0IHlhcmdzIGZyb20gXCJ5YXJnc1wiO1xuaW1wb3J0IHsgaGlkZUJpbiB9IGZyb20gXCJ5YXJncy9oZWxwZXJzXCI7XG5pbXBvcnQgeyBCdWlsZGVyIH0gZnJvbSBcIi4uL2J1aWxkaW5nL2J1aWxkZXIuanNcIjtcbmltcG9ydCB7IEdyYXBoIH0gZnJvbSBcIi4uL2J1aWxkaW5nL2dyYXBoLmpzXCI7XG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcIi4uL2J1aWxkaW5nL3Byb2plY3QuanNcIjtcbmltcG9ydCB7IFRlc3RSdW5uZXIgfSBmcm9tIFwiLi9ydW5uZXIuanNcIjtcblxuZW51bSBUZXN0VHlwZSB7XG4gICAgZXNtID0gXCJlc21cIixcbiAgICBjanMgPSBcImNqc1wiLFxuICAgIHdlYiA9IFwid2ViXCIsXG59XG5cbkVycm9yLnN0YWNrVHJhY2VMaW1pdCA9IDUwO1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWFpbihhcmd2ID0gcHJvY2Vzcy5hcmd2KSB7XG4gICAgY29uc3QgdGVzdFR5cGVzID0gbmV3IFNldDxUZXN0VHlwZT4oKTtcblxuICAgIGxldCBtYW51YWwgPSBmYWxzZTtcblxuICAgIGNvbnN0IGFyZ3MgPSBhd2FpdCB5YXJncyhoaWRlQmluKGFyZ3YpKVxuICAgICAgICAudXNhZ2UoXCJSdW5zIHRlc3RzIGluIHBhY2thZ2VzIGFkaGVyaW5nIHRvIG1hdHRlci5qcyBzdGFuZGFyZHMuXCIpXG4gICAgICAgIC5vcHRpb24oXCJwcmVmaXhcIiwge1xuICAgICAgICAgICAgYWxpYXM6IFwicFwiLFxuICAgICAgICAgICAgZGVmYXVsdDogXCIuXCIsXG4gICAgICAgICAgICB0eXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwic3BlY2lmeSBkaXJlY3Rvcnkgb2YgcGFja2FnZSB0byB0ZXN0XCIsXG4gICAgICAgIH0pXG4gICAgICAgIC5vcHRpb24oXCJ3ZWJcIiwge1xuICAgICAgICAgICAgYWxpYXM6IFwid1wiLFxuICAgICAgICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICAgICAgICB0eXBlOiBcImJvb2xlYW5cIixcbiAgICAgICAgICAgIGRlc2NyaWJlOiBcImVuYWJsZSB3ZWIgdGVzdHMgaW4gZGVmYXVsdCB0ZXN0IG1vZGVcIixcbiAgICAgICAgfSlcbiAgICAgICAgLm9wdGlvbihcInNwZWNcIiwge1xuICAgICAgICAgICAgdHlwZTogXCJhcnJheVwiLFxuICAgICAgICAgICAgc3RyaW5nOiB0cnVlLFxuICAgICAgICAgICAgZGVzY3JpYmU6IFwiT25lIG9yIG1vcmUgcGF0aHMgb2YgdGVzdHMgdG8gcnVuXCIsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIi4vdGVzdC8qKi8qVGVzdC50c1wiLFxuICAgICAgICB9KVxuICAgICAgICAub3B0aW9uKFwiYWxsLWxvZ3NcIiwgeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVzY3JpYmU6IFwiRW1pdCBsb2cgbWVzc2FnZXMgaW4gcmVhbCB0aW1lXCIgfSlcbiAgICAgICAgLm9wdGlvbihcImRlYnVnXCIsIHsgdHlwZTogXCJib29sZWFuXCIsIGRlc2NyaWJlOiBcIkVuYWJsZSBNb2NoYSBkZWJ1Z2dpbmdcIiB9KVxuICAgICAgICAub3B0aW9uKFwiZW52aXJvbm1lbnRcIiwgeyBhbGlhczogXCJlXCIsIHR5cGU6IFwic3RyaW5nXCIsIGRlc2NyaWJlOiBcIlNlbGVjdCBuYW1lZCB0ZXN0IGVudmlyb25tZW50XCIgfSlcbiAgICAgICAgLm9wdGlvbihcImZncmVwXCIsIHsgYWxpYXM6IFwiZlwiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjcmliZTogXCJPbmx5IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGlzIHN0cmluZ1wiIH0pXG4gICAgICAgIC5vcHRpb24oXCJmb3JjZS1leGl0XCIsIHsgdHlwZTogXCJib29sZWFuXCIsIGRlc2NyaWJlOiBcIkZvcmNlIE5vZGUgdG8gZXhpdCBhZnRlciB0ZXN0cyBjb21wbGV0ZVwiIH0pXG4gICAgICAgIC5vcHRpb24oXCJncmVwXCIsIHsgYWxpYXM6IFwiZ1wiLCB0eXBlOiBcInN0cmluZ1wiLCBkZXNjcmliZTogXCJPbmx5IHJ1biB0ZXN0cyBtYXRjaGluZyB0aGlzIHJlZ2V4cFwiIH0pXG4gICAgICAgIC5vcHRpb24oXCJpbnZlcnRcIiwgeyBhbGlhczogXCJpXCIsIHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjcmliZTogXCJJbnZlcnRzIC0tZ3JlcCBhbmQgLS1mZ3JlcCBtYXRjaGVzXCIgfSlcbiAgICAgICAgLm9wdGlvbihcInByb2ZpbGVcIiwgeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVzY3JpYmU6IFwiV3JpdGUgcHJvZmlsaW5nIGRhdGEgdG8gYnVpbGQvcHJvZmlsZXMgKG5vZGUgb25seSlcIiB9KVxuICAgICAgICAub3B0aW9uKFwid3RmXCIsIHsgdHlwZTogXCJib29sZWFuXCIsIGRlc2NyaWJlOiBcIkVubGlzdCB3dGZub2RlIHRvIGRldGVjdCB0ZXN0IGxlYWtzXCIgfSlcbiAgICAgICAgLm9wdGlvbihcInRyYWNlLXVuaGFuZGxlZFwiLCB7IHR5cGU6IFwiYm9vbGVhblwiLCBkZXNjcmliZTogXCJEZXRhaWwgdW5oYW5kbGVkIHJlamVjdGlvbnMgd2l0aCB0cmFjZS11bmhhbmRsZWRcIiB9KVxuICAgICAgICAuY29tbWFuZChcIipcIiwgXCJydW4gYWxsIHN1cHBvcnRlZCB0ZXN0IHR5cGVzXCIpXG4gICAgICAgIC5jb21tYW5kKFwiZXNtXCIsIFwicnVuIHRlc3RzIG9uIG5vZGUgKEVTNiBtb2R1bGVzKVwiLCAoKSA9PiB0ZXN0VHlwZXMuYWRkKFRlc3RUeXBlLmVzbSkpXG4gICAgICAgIC5jb21tYW5kKFwiY2pzXCIsIFwicnVuIHRlc3RzIG9uIG5vZGUgKENvbW1vbkpTIG1vZHVsZXMpXCIsICgpID0+IHRlc3RUeXBlcy5hZGQoVGVzdFR5cGUuY2pzKSlcbiAgICAgICAgLmNvbW1hbmQoXCJ3ZWJcIiwgXCJydW4gdGVzdHMgaW4gd2ViIGJyb3dzZXJcIiwgKCkgPT4gdGVzdFR5cGVzLmFkZChUZXN0VHlwZS53ZWIpKVxuICAgICAgICAuY29tbWFuZChcIm1hbnVhbFwiLCBcInN0YXJ0IHRlc3Qgc2VydmVyIGFuZCBwcmludCBVUkwgZm9yIG1hbnVhbCB0ZXN0aW5nXCIsICgpID0+IHtcbiAgICAgICAgICAgIHRlc3RUeXBlcy5hZGQoVGVzdFR5cGUud2ViKTtcbiAgICAgICAgICAgIG1hbnVhbCA9IHRydWU7XG4gICAgICAgIH0pXG4gICAgICAgIC5zdHJpY3QoKS5hcmd2O1xuXG4gICAgLy8gSWYgc3BlYyBzcGVjaWZpZWQgYW5kIHByZWZpeCBpcyBkZWZhdWx0LCB1c2UgdGhlIHNwZWMgZmlsZSB0byBsb2NhdGUgdGhlIHBhY2thZ2VcbiAgICBsZXQgcGFja2FnZUxvY2F0aW9uID0gYXJncy5wcmVmaXg7XG4gICAgaWYgKHBhY2thZ2VMb2NhdGlvbiA9PT0gXCIuXCIgJiYgYXJncy5zcGVjKSB7XG4gICAgICAgIGNvbnN0IGZpcnN0U3BlYyA9IEFycmF5LmlzQXJyYXkoYXJncy5zcGVjKSA/IGFyZ3Muc3BlY1swXSA6IGFyZ3Muc3BlYztcbiAgICAgICAgcGFja2FnZUxvY2F0aW9uID0gZmlyc3RTcGVjO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdChwYWNrYWdlTG9jYXRpb24pO1xuXG4gICAgcHJvY2Vzcy5jaGRpcihwcm9qZWN0LnBrZy5wYXRoKTtcblxuICAgIC8vIElmIG5vIHRlc3QgdHlwZXMgYXJlIHNwZWNpZmllZCBleHBsaWNpdGx5LCBydW4gYWxsIGVuYWJsZWQgdHlwZXNcbiAgICBpZiAoIXRlc3RUeXBlcy5zaXplKSB7XG4gICAgICAgIGlmIChwcm9qZWN0LnBrZy5zdXBwb3J0c0VzbSkge1xuICAgICAgICAgICAgdGVzdFR5cGVzLmFkZChUZXN0VHlwZS5lc20pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9qZWN0LnBrZy5zdXBwb3J0c0Nqcykge1xuICAgICAgICAgICAgdGVzdFR5cGVzLmFkZChUZXN0VHlwZS5janMpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhcmdzLndlYikge1xuICAgICAgICAgICAgdGVzdFR5cGVzLmFkZChUZXN0VHlwZS53ZWIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgYnVpbGRlciA9IG5ldyBCdWlsZGVyKCk7XG4gICAgY29uc3QgZGVwZW5kZW5jaWVzID0gYXdhaXQgR3JhcGguZm9yUHJvamVjdChwYWNrYWdlTG9jYXRpb24pO1xuICAgIGlmIChkZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgYXdhaXQgZGVwZW5kZW5jaWVzLmJ1aWxkKGJ1aWxkZXIsIGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCBidWlsZGVyLmJ1aWxkKHByb2plY3QpO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2dyZXNzID0gcHJvamVjdC5wa2cuc3RhcnQoXCJUZXN0aW5nXCIpO1xuICAgIGNvbnN0IHJ1bm5lciA9IG5ldyBUZXN0UnVubmVyKHByb2plY3QucGtnLCBwcm9ncmVzcywgYXJncyk7XG5cbiAgICBpZiAodGVzdFR5cGVzLmhhcyhUZXN0VHlwZS5lc20pKSB7XG4gICAgICAgIGF3YWl0IHJ1bm5lci5ydW5Ob2RlKFwiZXNtXCIpO1xuICAgIH1cblxuICAgIGlmICh0ZXN0VHlwZXMuaGFzKFRlc3RUeXBlLmNqcykpIHtcbiAgICAgICAgYXdhaXQgcnVubmVyLnJ1bk5vZGUoXCJjanNcIik7XG4gICAgfVxuXG4gICAgaWYgKHRlc3RUeXBlcy5oYXMoVGVzdFR5cGUud2ViKSkge1xuICAgICAgICBhd2FpdCBydW5uZXIucnVuV2ViKG1hbnVhbCk7XG4gICAgfVxuXG4gICAgcHJvZ3Jlc3Muc2h1dGRvd24oKTtcblxuICAgIGlmIChhcmdzLmZvcmNlRXhpdCkge1xuICAgICAgICBwcm9jZXNzLmV4aXQoMCk7XG4gICAgfVxufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLE9BQU87QUFDUCxPQUFPO0FBRVAsT0FBTyxXQUFXO0FBQ2xCLFNBQVMsZUFBZTtBQUN4QixTQUFTLGVBQWU7QUFDeEIsU0FBUyxhQUFhO0FBQ3RCLFNBQVMsZUFBZTtBQUN4QixTQUFTLGtCQUFrQjtBQUUzQixJQUFLLFdBQUwsa0JBQUtBLGNBQUw7QUFDSSxFQUFBQSxVQUFBLFNBQU07QUFDTixFQUFBQSxVQUFBLFNBQU07QUFDTixFQUFBQSxVQUFBLFNBQU07QUFITCxTQUFBQTtBQUFBLEdBQUE7QUFNTCxNQUFNLGtCQUFrQjtBQUV4QixlQUFzQixLQUFLLE9BQU8sUUFBUSxNQUFNO0FBQzVDLFFBQU0sWUFBWSxvQkFBSSxJQUFjO0FBRXBDLE1BQUksU0FBUztBQUViLFFBQU0sT0FBTyxNQUFNLE1BQU0sUUFBUSxJQUFJLENBQUMsRUFDakMsTUFBTSx5REFBeUQsRUFDL0QsT0FBTyxVQUFVO0FBQUEsSUFDZCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsRUFDZCxDQUFDLEVBQ0EsT0FBTyxPQUFPO0FBQUEsSUFDWCxPQUFPO0FBQUEsSUFDUCxTQUFTO0FBQUEsSUFDVCxNQUFNO0FBQUEsSUFDTixVQUFVO0FBQUEsRUFDZCxDQUFDLEVBQ0EsT0FBTyxRQUFRO0FBQUEsSUFDWixNQUFNO0FBQUEsSUFDTixRQUFRO0FBQUEsSUFDUixVQUFVO0FBQUEsSUFDVixTQUFTO0FBQUEsRUFDYixDQUFDLEVBQ0EsT0FBTyxZQUFZLEVBQUUsTUFBTSxXQUFXLFVBQVUsaUNBQWlDLENBQUMsRUFDbEYsT0FB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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/testing/cli.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["TestType"]
|
|
6
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export interface FailureDetail {
|
|
7
|
+
message: string;
|
|
8
|
+
stack?: string;
|
|
9
|
+
diff?: string;
|
|
10
|
+
logs?: string;
|
|
11
|
+
cause?: FailureDetail;
|
|
12
|
+
errors?: FailureDetail[];
|
|
13
|
+
}
|
|
14
|
+
export declare function FailureDetail(error: any, logs?: string[]): FailureDetail;
|
|
15
|
+
export declare namespace FailureDetail {
|
|
16
|
+
function dump(failure: FailureDetail, prefix?: string): void;
|
|
17
|
+
let diff: undefined | ((actual: string, expected: string) => string);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=failure-detail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure-detail.d.ts","sourceRoot":"","sources":["../../../src/testing/failure-detail.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,MAAM,CAAC,EAAE,aAAa,EAAE,CAAC;CAC5B;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,iBAgCxD;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,GAAE,MAAW,QA2B/D;IAEM,IAAI,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC/E"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2024 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import colors from "ansi-colors";
|
|
7
|
+
function FailureDetail(error, logs) {
|
|
8
|
+
let diff;
|
|
9
|
+
const { message, stack, cause, errors } = parseError(error);
|
|
10
|
+
if (error.expected && error.actual) {
|
|
11
|
+
if (FailureDetail.diff === void 0) {
|
|
12
|
+
diff = "(no diff implementation installed)";
|
|
13
|
+
} else {
|
|
14
|
+
diff = FailureDetail.diff(error.actual.toString(), error.expected.toString());
|
|
15
|
+
diff = diff.trim().replace(/^ {6}/gms, "");
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const result = { message };
|
|
19
|
+
if (diff) {
|
|
20
|
+
result.diff = diff;
|
|
21
|
+
}
|
|
22
|
+
if (stack) {
|
|
23
|
+
result.stack = stack;
|
|
24
|
+
}
|
|
25
|
+
if (logs?.length) {
|
|
26
|
+
result.logs = logs.join("\n");
|
|
27
|
+
}
|
|
28
|
+
if (cause) {
|
|
29
|
+
result.cause = cause;
|
|
30
|
+
}
|
|
31
|
+
if (errors) {
|
|
32
|
+
result.errors = errors;
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
((FailureDetail2) => {
|
|
37
|
+
function dump(failure, prefix = "") {
|
|
38
|
+
process.stdout.write(colors.redBright(`${prefix}${failure.message}
|
|
39
|
+
|
|
40
|
+
`));
|
|
41
|
+
if (failure.diff) {
|
|
42
|
+
process.stdout.write(`${prefix} ${failure.diff.replace(/\n/gm, "\n ")}
|
|
43
|
+
|
|
44
|
+
`);
|
|
45
|
+
}
|
|
46
|
+
if (failure.stack) {
|
|
47
|
+
process.stdout.write(`${prefix}${colors.dim(failure.stack.replace(/\n/gm, `
|
|
48
|
+
${prefix}`))}
|
|
49
|
+
|
|
50
|
+
`);
|
|
51
|
+
}
|
|
52
|
+
if (failure.cause) {
|
|
53
|
+
process.stdout.write(`${prefix}Caused by:
|
|
54
|
+
|
|
55
|
+
`);
|
|
56
|
+
dump(failure.cause, prefix);
|
|
57
|
+
}
|
|
58
|
+
if (failure.errors?.length) {
|
|
59
|
+
let num = 0;
|
|
60
|
+
for (const cause of failure.errors) {
|
|
61
|
+
process.stdout.write(`${prefix}Cause #${++num}:
|
|
62
|
+
|
|
63
|
+
`);
|
|
64
|
+
dump(cause, `${prefix} `);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (failure.logs) {
|
|
68
|
+
process.stdout.write(` ${failure.logs.replace(/\n/gm, "\n ")}
|
|
69
|
+
|
|
70
|
+
`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
FailureDetail2.dump = dump;
|
|
74
|
+
})(FailureDetail || (FailureDetail = {}));
|
|
75
|
+
function parseError(error) {
|
|
76
|
+
let message, stack, cause, errors;
|
|
77
|
+
if (error === void 0 || error === null) {
|
|
78
|
+
message = `(error is ${error})`;
|
|
79
|
+
} else {
|
|
80
|
+
message = error.message;
|
|
81
|
+
}
|
|
82
|
+
if (error.stack) {
|
|
83
|
+
let lines = error.stack.trim().split("\n");
|
|
84
|
+
if (!message) {
|
|
85
|
+
message = lines[0];
|
|
86
|
+
}
|
|
87
|
+
lines = lines.filter((line) => line.match(/:\d+:\d+\)?/));
|
|
88
|
+
if (lines.length) {
|
|
89
|
+
stack = lines.map((line) => line.trim()).join("\n");
|
|
90
|
+
}
|
|
91
|
+
} else if (error.message) {
|
|
92
|
+
message = error.message;
|
|
93
|
+
} else {
|
|
94
|
+
message = error.toString();
|
|
95
|
+
}
|
|
96
|
+
message = message.trim().replace(/Error: /, "");
|
|
97
|
+
if (message.endsWith(":")) {
|
|
98
|
+
message = message.slice(0, message.length - 1);
|
|
99
|
+
}
|
|
100
|
+
const errorCause = error.cause;
|
|
101
|
+
if (errorCause) {
|
|
102
|
+
cause = FailureDetail(errorCause);
|
|
103
|
+
}
|
|
104
|
+
const errorErrors = error.errors;
|
|
105
|
+
if (Array.isArray(errorErrors)) {
|
|
106
|
+
errors = errorErrors.map((e) => FailureDetail(e));
|
|
107
|
+
}
|
|
108
|
+
return { message, stack, cause, errors };
|
|
109
|
+
}
|
|
110
|
+
export {
|
|
111
|
+
FailureDetail
|
|
112
|
+
};
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vc3JjL3Rlc3RpbmcvZmFpbHVyZS1kZXRhaWwudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCAyMDIyLTIwMjQgTWF0dGVyLmpzIEF1dGhvcnNcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG4gKi9cblxuaW1wb3J0IGNvbG9ycyBmcm9tIFwiYW5zaS1jb2xvcnNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBGYWlsdXJlRGV0YWlsIHtcbiAgICBtZXNzYWdlOiBzdHJpbmc7XG4gICAgc3RhY2s/OiBzdHJpbmc7XG4gICAgZGlmZj86IHN0cmluZztcbiAgICBsb2dzPzogc3RyaW5nO1xuICAgIGNhdXNlPzogRmFpbHVyZURldGFpbDtcbiAgICBlcnJvcnM/OiBGYWlsdXJlRGV0YWlsW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGYWlsdXJlRGV0YWlsKGVycm9yOiBhbnksIGxvZ3M/OiBzdHJpbmdbXSkge1xuICAgIGxldCBkaWZmOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCB7IG1lc3NhZ2UsIHN0YWNrLCBjYXVzZSwgZXJyb3JzIH0gPSBwYXJzZUVycm9yKGVycm9yKTtcblxuICAgIGlmIChlcnJvci5leHBlY3RlZCAmJiBlcnJvci5hY3R1YWwpIHtcbiAgICAgICAgaWYgKEZhaWx1cmVEZXRhaWwuZGlmZiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBkaWZmID0gXCIobm8gZGlmZiBpbXBsZW1lbnRhdGlvbiBpbnN0YWxsZWQpXCI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkaWZmID0gRmFpbHVyZURldGFpbC5kaWZmKGVycm9yLmFjdHVhbC50b1N0cmluZygpLCBlcnJvci5leHBlY3RlZC50b1N0cmluZygpKTtcbiAgICAgICAgICAgIGRpZmYgPSBkaWZmLnRyaW0oKS5yZXBsYWNlKC9eIHs2fS9nbXMsIFwiXCIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0ID0geyBtZXNzYWdlIH0gYXMgRmFpbHVyZURldGFpbDtcbiAgICBpZiAoZGlmZikge1xuICAgICAgICByZXN1bHQuZGlmZiA9IGRpZmY7XG4gICAgfVxuICAgIGlmIChzdGFjaykge1xuICAgICAgICByZXN1bHQuc3RhY2sgPSBzdGFjaztcbiAgICB9XG4gICAgaWYgKGxvZ3M/Lmxlbmd0aCkge1xuICAgICAgICByZXN1bHQubG9ncyA9IGxvZ3Muam9pbihcIlxcblwiKTtcbiAgICB9XG4gICAgaWYgKGNhdXNlKSB7XG4gICAgICAgIHJlc3VsdC5jYXVzZSA9IGNhdXNlO1xuICAgIH1cbiAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgIHJlc3VsdC5lcnJvcnMgPSBlcnJvcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBGYWlsdXJlRGV0YWlsIHtcbiAgICBleHBvcnQgZnVuY3Rpb24gZHVtcChmYWlsdXJlOiBGYWlsdXJlRGV0YWlsLCBwcmVmaXg6IHN0cmluZyA9IFwiXCIpIHtcbiAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoY29sb3JzLnJlZEJyaWdodChgJHtwcmVmaXh9JHtmYWlsdXJlLm1lc3NhZ2V9XFxuXFxuYCkpO1xuXG4gICAgICAgIGlmIChmYWlsdXJlLmRpZmYpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke3ByZWZpeH0gICAgJHtmYWlsdXJlLmRpZmYucmVwbGFjZSgvXFxuL2dtLCBcIlxcbiAgICAgIFwiKX1cXG5cXG5gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmYWlsdXJlLnN0YWNrKSB7XG4gICAgICAgICAgICBwcm9jZXNzLnN0ZG91dC53cml0ZShgJHtwcmVmaXh9JHtjb2xvcnMuZGltKGZhaWx1cmUuc3RhY2sucmVwbGFjZSgvXFxuL2dtLCBgXFxuJHtwcmVmaXh9YCkpfVxcblxcbmApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZhaWx1cmUuY2F1c2UpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAke3ByZWZpeH1DYXVzZWQgYnk6XFxuXFxuYCk7XG4gICAgICAgICAgICBkdW1wKGZhaWx1cmUuY2F1c2UsIHByZWZpeCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmFpbHVyZS5lcnJvcnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgbGV0IG51bSA9IDA7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGNhdXNlIG9mIGZhaWx1cmUuZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoYCR7cHJlZml4fUNhdXNlICMkeysrbnVtfTpcXG5cXG5gKTtcbiAgICAgICAgICAgICAgICBkdW1wKGNhdXNlLCBgJHtwcmVmaXh9ICBgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmYWlsdXJlLmxvZ3MpIHtcbiAgICAgICAgICAgIHByb2Nlc3Muc3Rkb3V0LndyaXRlKGAgICR7ZmFpbHVyZS5sb2dzLnJlcGxhY2UoL1xcbi9nbSwgXCJcXG4gIFwiKX1cXG5cXG5gKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGV4cG9ydCBsZXQgZGlmZjogdW5kZWZpbmVkIHwgKChhY3R1YWw6IHN0cmluZywgZXhwZWN0ZWQ6IHN0cmluZykgPT4gc3RyaW5nKTtcbn1cblxuZnVuY3Rpb24gcGFyc2VFcnJvcihlcnJvcjogRXJyb3IpIHtcbiAgICBsZXQgbWVzc2FnZSwgc3RhY2ssIGNhdXNlOiBGYWlsdXJlRGV0YWlsIHwgdW5kZWZpbmVkLCBlcnJvcnM6IEZhaWx1cmVEZXRhaWxbXSB8IHVuZGVmaW5lZDtcblxuICAgIGlmIChlcnJvciA9PT0gdW5kZWZpbmVkIHx8IGVycm9yID09PSBudWxsKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBgKGVycm9yIGlzICR7ZXJyb3J9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZSA9IGVycm9yLm1lc3NhZ2U7XG4gICAgfVxuXG4gICAgaWYgKGVycm9yLnN0YWNrKSB7XG4gICAgICAgIGxldCBsaW5lcyA9IGVycm9yLnN0YWNrLnRyaW0oKS5zcGxpdChcIlxcblwiKTtcbiAgICAgICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICAgICAgICBtZXNzYWdlID0gbGluZXNbMF07XG4gICAgICAgIH1cbiAgICAgICAgbGluZXMgPSBsaW5lcy5maWx0ZXIobGluZSA9PiBsaW5lLm1hdGNoKC86XFxkKzpcXGQrXFwpPy8pKTtcbiAgICAgICAgaWYgKGxpbmVzLmxlbmd0aCkge1xuICAgICAgICAgICAgc3RhY2sgPSBsaW5lcy5tYXAobGluZSA9PiBsaW5lLnRyaW0oKSkuam9pbihcIlxcblwiKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZXJyb3IubWVzc2FnZSkge1xuICAgICAgICBtZXNzYWdlID0gZXJyb3IubWVzc2FnZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlID0gZXJyb3IudG9TdHJpbmcoKTtcbiAgICB9XG5cbiAgICBtZXNzYWdlID0gbWVzc2FnZS50cmltKCkucmVwbGFjZSgvRXJyb3I6IC8sIFwiXCIpO1xuXG4gICAgaWYgKG1lc3NhZ2UuZW5kc1dpdGgoXCI6XCIpKSB7XG4gICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLnNsaWNlKDAsIG1lc3NhZ2UubGVuZ3RoIC0gMSk7XG4gICAgfVxuXG4gICAgY29uc3QgZXJyb3JDYXVzZSA9IGVycm9yLmNhdXNlO1xuICAgIGlmIChlcnJvckNhdXNlKSB7XG4gICAgICAgIGNhdXNlID0gRmFpbHVyZURldGFpbChlcnJvckNhdXNlKTtcbiAgICB9XG5cbiAgICBjb25zdCBlcnJvckVycm9ycyA9IChlcnJvciBhcyBBZ2dyZWdhdGVFcnJvcikuZXJyb3JzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KGVycm9yRXJyb3JzKSkge1xuICAgICAgICBlcnJvcnMgPSBlcnJvckVycm9ycy5tYXAoZSA9PiBGYWlsdXJlRGV0YWlsKGUpKTtcbiAgICB9XG5cbiAgICByZXR1cm4geyBtZXNzYWdlLCBzdGFjaywgY2F1c2UsIGVycm9ycyB9O1xufVxuIl0sCiAgIm1hcHBpbmdzIjogIkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQU1BLE9BQU8sWUFBWTtBQVdaLFNBQVMsY0FBYyxPQUFZLE1BQWlCO0FBQ3ZELE1BQUk7QUFFSixRQUFNLEVBQUUsU0FBUyxPQUFPLE9BQU8sT0FBTyxJQUFJLFdBQVcsS0FBSztBQUUxRCxNQUFJLE1BQU0sWUFBWSxNQUFNLFFBQVE7QUFDaEMsUUFBSSxjQUFjLFNBQVMsUUFBVztBQUNsQyxhQUFPO0FBQUEsSUFDWCxPQUFPO0FBQ0gsYUFBTyxjQUFjLEtBQUssTUFBTSxPQUFPLFNBQVMsR0FBRyxNQUFNLFNBQVMsU0FBUyxDQUFDO0FBQzVFLGFBQU8sS0FBSyxLQUFLLEVBQUUsUUFBUSxZQUFZLEVBQUU7QUFBQSxJQUM3QztBQUFBLEVBQ0o7QUFFQSxRQUFNLFNBQVMsRUFBRSxRQUFRO0FBQ3pCLE1BQUksTUFBTTtBQUNOLFdBQU8sT0FBTztBQUFBLEVBQ2xCO0FBQ0EsTUFBSSxPQUFPO0FBQ1AsV0FBTyxRQUFRO0FBQUEsRUFDbkI7QUFDQSxNQUFJLE1BQU0sUUFBUTtBQUNkLFdBQU8sT0FBTyxLQUFLLEtBQUssSUFBSTtBQUFBLEVBQ2hDO0FBQ0EsTUFBSSxPQUFPO0FBQ1AsV0FBTyxRQUFRO0FBQUEsRUFDbkI7QUFDQSxNQUFJLFFBQVE7QUFDUixXQUFPLFNBQVM7QUFBQSxFQUNwQjtBQUVBLFNBQU87QUFDWDtBQUFBLENBRU8sQ0FBVUEsbUJBQVY7QUFDSSxXQUFTLEtBQUssU0FBd0IsU0FBaUIsSUFBSTtBQUM5RCxZQUFRLE9BQU8sTUFBTSxPQUFPLFVBQVUsR0FBRyxNQUFNLEdBQUcsUUFBUSxPQUFPO0FBQUE7QUFBQSxDQUFNLENBQUM7QUFFeEUsUUFBSSxRQUFRLE1BQU07QUFDZCxjQUFRLE9BQU8sTUFBTSxHQUFHLE1BQU0sT0FBTyxRQUFRLEtBQUssUUFBUSxRQUFRLFVBQVUsQ0FBQztBQUFBO0FBQUEsQ0FBTTtBQUFBLElBQ3ZGO0FBRUEsUUFBSSxRQUFRLE9BQU87QUFDZixjQUFRLE9BQU8sTUFBTSxHQUFHLE1BQU0sR0FBRyxPQUFPLElBQUksUUFBUSxNQUFNLFFBQVEsUUFBUTtBQUFBLEVBQUssTUFBTSxFQUFFLENBQUMsQ0FBQztBQUFBO0FBQUEsQ0FBTTtBQUFBLElBQ25HO0FBRUEsUUFBSSxRQUFRLE9BQU87QUFDZixjQUFRLE9BQU8sTUFBTSxHQUFHLE1BQU07QUFBQTtBQUFBLENBQWdCO0FBQzlDLFdBQUssUUFBUSxPQUFPLE1BQU07QUFBQSxJQUM5QjtBQUVBLFFBQUksUUFBUSxRQUFRLFFBQVE7QUFDeEIsVUFBSSxNQUFNO0FBQ1YsaUJBQVcsU0FBUyxRQUFRLFFBQVE7QUFDaEMsZ0JBQVEsT0FBTyxNQUFNLEdBQUcsTUFBTSxVQUFVLEVBQUUsR0FBRztBQUFBO0FBQUEsQ0FBTztBQUNwRCxhQUFLLE9BQU8sR0FBRyxNQUFNLElBQUk7QUFBQSxNQUM3QjtBQUFBLElBQ0o7QUFFQSxRQUFJLFFBQVEsTUFBTTtBQUNkLGNBQVEsT0FBTyxNQUFNLEtBQUssUUFBUSxLQUFLLFFBQVEsUUFBUSxNQUFNLENBQUM7QUFBQTtBQUFBLENBQU07QUFBQSxJQUN4RTtBQUFBLEVBQ0o7QUEzQk8sRUFBQUEsZUFBUztBQUFBLEdBREg7QUFpQ2pCLFNBQVMsV0FBVyxPQUFjO0FBQzlCLE1BQUksU0FBUyxPQUFPLE9BQWtDO0FBRXRELE1BQUksVUFBVSxVQUFhLFVBQVUsTUFBTTtBQUN2QyxjQUFVLGFBQWEsS0FBSztBQUFBLEVBQ2hDLE9BQU87QUFDSCxjQUFVLE1BQU07QUFBQSxFQUNwQjtBQUVBLE1BQUksTUFBTSxPQUFPO0FBQ2IsUUFBSSxRQUFRLE1BQU0sTUFBTSxLQUFLLEVBQUUsTUFBTSxJQUFJO0FBQ3pDLFFBQUksQ0FBQyxTQUFTO0FBQ1YsZ0JBQVUsTUFBTSxDQUFDO0FBQUEsSUFDckI7QUFDQSxZQUFRLE1BQU0sT0FBTyxVQUFRLEtBQUssTUFBTSxhQUFhLENBQUM7QUFDdEQsUUFBSSxNQUFNLFFBQVE7QUFDZCxjQUFRLE1BQU0sSUFBSSxVQUFRLEtBQUssS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJO0FBQUEsSUFDcEQ7QUFBQSxFQUNKLFdBQVcsTUFBTSxTQUFTO0FBQ3RCLGNBQVUsTUFBTTtBQUFBLEVBQ3BCLE9BQU87QUFDSCxjQUFVLE1BQU0sU0FBUztBQUFBLEVBQzdCO0FBRUEsWUFBVSxRQUFRLEtBQUssRUFBRSxRQUFRLFdBQVcsRUFBRTtBQUU5QyxNQUFJLFFBQVEsU0FBUyxHQUFHLEdBQUc7QUFDdkIsY0FBVSxRQUFRLE1BQU0sR0FBRyxRQUFRLFNBQVMsQ0FBQztBQUFBLEVBQ2pEO0FBRUEsUUFBTSxhQUFhLE1BQU07QUFDekIsTUFBSSxZQUFZO0FBQ1osWUFBUSxjQUFjLFVBQVU7QUFBQSxFQUNwQztBQUVBLFFBQU0sY0FBZSxNQUF5QjtBQUM5QyxNQUFJLE1BQU0sUUFBUSxXQUFXLEdBQUc7QUFDNUIsYUFBUyxZQUFZLElBQUksT0FBSyxjQUFjLENBQUMsQ0FBQztBQUFBLEVBQ2xEO0FBRUEsU0FBTyxFQUFFLFNBQVMsT0FBTyxPQUFPLE9BQU87QUFDM0M7IiwKICAibmFtZXMiOiBbIkZhaWx1cmVEZXRhaWwiXQp9Cg==
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/testing/failure-detail.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO,YAAY;AAWZ,SAAS,cAAc,OAAY,MAAiB;AACvD,MAAI;AAEJ,QAAM,EAAE,SAAS,OAAO,OAAO,OAAO,IAAI,WAAW,KAAK;AAE1D,MAAI,MAAM,YAAY,MAAM,QAAQ;AAChC,QAAI,cAAc,SAAS,QAAW;AAClC,aAAO;AAAA,IACX,OAAO;AACH,aAAO,cAAc,KAAK,MAAM,OAAO,SAAS,GAAG,MAAM,SAAS,SAAS,CAAC;AAC5E,aAAO,KAAK,KAAK,EAAE,QAAQ,YAAY,EAAE;AAAA,IAC7C;AAAA,EACJ;AAEA,QAAM,SAAS,EAAE,QAAQ;AACzB,MAAI,MAAM;AACN,WAAO,OAAO;AAAA,EAClB;AACA,MAAI,OAAO;AACP,WAAO,QAAQ;AAAA,EACnB;AACA,MAAI,MAAM,QAAQ;AACd,WAAO,OAAO,KAAK,KAAK,IAAI;AAAA,EAChC;AACA,MAAI,OAAO;AACP,WAAO,QAAQ;AAAA,EACnB;AACA,MAAI,QAAQ;AACR,WAAO,SAAS;AAAA,EACpB;AAEA,SAAO;AACX;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,KAAK,SAAwB,SAAiB,IAAI;AAC9D,YAAQ,OAAO,MAAM,OAAO,UAAU,GAAG,MAAM,GAAG,QAAQ,OAAO;AAAA;AAAA,CAAM,CAAC;AAExE,QAAI,QAAQ,MAAM;AACd,cAAQ,OAAO,MAAM,GAAG,MAAM,OAAO,QAAQ,KAAK,QAAQ,QAAQ,UAAU,CAAC;AAAA;AAAA,CAAM;AAAA,IACvF;AAEA,QAAI,QAAQ,OAAO;AACf,cAAQ,OAAO,MAAM,GAAG,MAAM,GAAG,OAAO,IAAI,QAAQ,MAAM,QAAQ,QAAQ;AAAA,EAAK,MAAM,EAAE,CAAC,CAAC;AAAA;AAAA,CAAM;AAAA,IACnG;AAEA,QAAI,QAAQ,OAAO;AACf,cAAQ,OAAO,MAAM,GAAG,MAAM;AAAA;AAAA,CAAgB;AAC9C,WAAK,QAAQ,OAAO,MAAM;AAAA,IAC9B;AAEA,QAAI,QAAQ,QAAQ,QAAQ;AACxB,UAAI,MAAM;AACV,iBAAW,SAAS,QAAQ,QAAQ;AAChC,gBAAQ,OAAO,MAAM,GAAG,MAAM,UAAU,EAAE,GAAG;AAAA;AAAA,CAAO;AACpD,aAAK,OAAO,GAAG,MAAM,IAAI;AAAA,MAC7B;AAAA,IACJ;AAEA,QAAI,QAAQ,MAAM;AACd,cAAQ,OAAO,MAAM,KAAK,QAAQ,KAAK,QAAQ,QAAQ,MAAM,CAAC;AAAA;AAAA,CAAM;AAAA,IACxE;AAAA,EACJ;AA3BO,EAAAA,eAAS;AAAA,GADH;AAiCjB,SAAS,WAAW,OAAc;AAC9B,MAAI,SAAS,OAAO,OAAkC;AAEtD,MAAI,UAAU,UAAa,UAAU,MAAM;AACvC,cAAU,aAAa,KAAK;AAAA,EAChC,OAAO;AACH,cAAU,MAAM;AAAA,EACpB;AAEA,MAAI,MAAM,OAAO;AACb,QAAI,QAAQ,MAAM,MAAM,KAAK,EAAE,MAAM,IAAI;AACzC,QAAI,CAAC,SAAS;AACV,gBAAU,MAAM,CAAC;AAAA,IACrB;AACA,YAAQ,MAAM,OAAO,UAAQ,KAAK,MAAM,aAAa,CAAC;AACtD,QAAI,MAAM,QAAQ;AACd,cAAQ,MAAM,IAAI,UAAQ,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI;AAAA,IACpD;AAAA,EACJ,WAAW,MAAM,SAAS;AACtB,cAAU,MAAM;AAAA,EACpB,OAAO;AACH,cAAU,MAAM,SAAS;AAAA,EAC7B;AAEA,YAAU,QAAQ,KAAK,EAAE,QAAQ,WAAW,EAAE;AAE9C,MAAI,QAAQ,SAAS,GAAG,GAAG;AACvB,cAAU,QAAQ,MAAM,GAAG,QAAQ,SAAS,CAAC;AAAA,EACjD;AAEA,QAAM,aAAa,MAAM;AACzB,MAAI,YAAY;AACZ,YAAQ,cAAc,UAAU;AAAA,EACpC;AAEA,QAAM,cAAe,MAAyB;AAC9C,MAAI,MAAM,QAAQ,WAAW,GAAG;AAC5B,aAAS,YAAY,IAAI,OAAK,cAAc,CAAC,CAAC;AAAA,EAClD;AAEA,SAAO,EAAE,SAAS,OAAO,OAAO,OAAO;AAC3C;",
|
|
5
|
+
"names": ["FailureDetail"]
|
|
6
|
+
}
|