just-test-node 1.4.2 → 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/README.md +11 -15
  2. package/lib/Discover.d.ts +25 -0
  3. package/lib/Discover.js +4 -0
  4. package/lib/OptionsDefinitions.d.ts +15 -0
  5. package/lib/OptionsDefinitions.js +55 -0
  6. package/lib/StackTrace.d.ts +1 -0
  7. package/lib/StackTrace.js +44 -0
  8. package/lib/Suite.d.ts +45 -0
  9. package/lib/Suite.js +115 -0
  10. package/lib/Test.d.ts +13 -6
  11. package/lib/Test.js +41 -39
  12. package/lib/TestStage.d.ts +1 -1
  13. package/lib/TestStage.js +3 -0
  14. package/lib/code-position-resolution.d.ts +2 -0
  15. package/lib/code-position-resolution.js +50 -0
  16. package/lib/exampleTestFile.test.js +49 -52
  17. package/lib/help.d.ts +1 -1
  18. package/lib/help.js +3 -0
  19. package/lib/index.d.ts +1 -0
  20. package/lib/index.js +93 -68
  21. package/lib/reporters/JsonReporter.d.ts +20 -0
  22. package/lib/reporters/JsonReporter.js +39 -0
  23. package/lib/reporters/Reporter.d.ts +4 -0
  24. package/lib/reporters/Reporter.js +4 -0
  25. package/lib/reporters/SpecReporter.d.ts +14 -0
  26. package/lib/reporters/SpecReporter.js +90 -0
  27. package/lib/reporters/index.d.ts +3 -0
  28. package/lib/reporters/index.js +17 -0
  29. package/lib/run-results/SuiteRunResult.d.ts +11 -0
  30. package/lib/run-results/SuiteRunResult.js +19 -0
  31. package/lib/run-results/TestRunResult.d.ts +9 -0
  32. package/lib/run-results/TestRunResult.js +15 -0
  33. package/lib/run-results/index.d.ts +2 -0
  34. package/lib/run-results/index.js +16 -0
  35. package/package.json +69 -64
  36. package/lib/OptionsDefinition.d.ts +0 -4
  37. package/lib/OptionsDefinition.js +0 -2
  38. package/lib/PerformancePolyfill.d.ts +0 -1
  39. package/lib/PerformancePolyfill.js +0 -14
  40. package/lib/SpecReporter.d.ts +0 -12
  41. package/lib/SpecReporter.js +0 -74
  42. package/lib/TestRunResult.d.ts +0 -9
  43. package/lib/TestRunResult.js +0 -11
  44. package/lib/TestSuiteClass.d.ts +0 -27
  45. package/lib/TestSuiteClass.js +0 -85
@@ -1,65 +1,62 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
2
  Object.defineProperty(exports, "__esModule", { value: true });
11
3
  function someFunction() { }
12
4
  function default_1(suite) {
13
- suite.describe("Some suite title", suite => {
14
- suite.describe("Pass suite", suite => {
15
- suite.test("Nothing", t => {
16
- });
17
- suite.test("Async", (t) => __awaiter(this, void 0, void 0, function* () {
18
- yield Promise.resolve("Hi");
19
- }));
20
- suite.describe(someFunction, suite => {
21
- suite.test("Nothing", t => {
22
- });
23
- });
5
+ suite.describe("Passing suite", suite => {
6
+ suite.test("Simple test", t => {
24
7
  });
25
- suite.describe("Fail suite", suite => {
26
- suite.test("No stage error", t => {
27
- throw "asdf";
28
- });
29
- suite.test("Arrage error", t => {
30
- t.arrange();
31
- throw "asdf";
32
- });
33
- suite.test("Act error", t => {
34
- t.act();
35
- throw "asdf";
36
- });
37
- suite.test("Assert error", t => {
38
- t.assert();
39
- throw "asdf";
40
- });
41
- suite.test("Throw Error", t => {
42
- t.assert();
43
- throw new Error("Some error message.");
44
- });
45
- suite.test("Throws after await", (t) => __awaiter(this, void 0, void 0, function* () {
46
- yield new Promise(r => setTimeout(r, 1));
47
- t.assert();
48
- throw "error";
49
- }));
50
- suite.test("Timeout reached.", (t) => __awaiter(this, void 0, void 0, function* () {
51
- t.timeout = 1;
52
- yield new Promise(r => setTimeout(r, 100));
53
- }));
8
+ suite.test("Async", async (t) => {
9
+ await Promise.resolve("Hi");
54
10
  });
55
- suite.describe("Pass suite 2", suite => {
56
- suite.test("Nothing", t => {
11
+ suite.describe(someFunction, suite => {
12
+ suite.test("Test", t => {
57
13
  });
58
14
  });
59
15
  });
60
- suite.describe("Some suite title2", suite => {
61
- suite.test("Nothing", t => {
16
+ suite.describe("Failing suite", suite => {
17
+ suite.test("No stage error", t => {
18
+ throw "asdf";
19
+ });
20
+ suite.test("Arrage error", t => {
21
+ t.arrange();
22
+ throw "asdf";
23
+ });
24
+ suite.test("Act error", t => {
25
+ t.act();
26
+ throw "asdf";
62
27
  });
28
+ suite.test("Assert error", t => {
29
+ t.assert();
30
+ throw "asdf";
31
+ });
32
+ suite.test("Throw Error", t => {
33
+ t.assert();
34
+ throw new Error("Some error message.");
35
+ });
36
+ suite.test("Throws after await", async (t) => {
37
+ await new Promise(r => setTimeout(r, 1));
38
+ t.assert();
39
+ throw "error";
40
+ });
41
+ suite.test("Timeout reached.", async (t) => {
42
+ t.timeout = 1;
43
+ await new Promise(r => setTimeout(r, 100));
44
+ });
45
+ });
46
+ suite.describe("Empty suite", suite => {
47
+ });
48
+ suite.describe("Named functions", suite => {
49
+ suite.testFunc(named_function_test_with_spaces);
50
+ suite.testFunc(function inline_function() { });
51
+ suite.testFuncs(test1, test2);
63
52
  });
64
53
  }
65
54
  exports.default = default_1;
55
+ function named_function_test_with_spaces(t) {
56
+ }
57
+ function test1(t) {
58
+ }
59
+ function test2(t) {
60
+ }
61
+
62
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVUZXN0RmlsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsU0FBUyxZQUFZLEtBQUssQ0FBQztBQUUzQixtQkFBeUIsS0FBZ0I7SUFDeEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDN0IsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNoQyxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxNQUFNLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQzNCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sTUFBTSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDMUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV6QyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE9BQU8sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDeEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDZCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRTtJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDekMsS0FBSyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxlQUFlLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBL0RELDRCQStEQztBQUVELFNBQVMsK0JBQStCLENBQUMsQ0FBYTtBQUN0RCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsQ0FBYTtBQUM1QixDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsQ0FBYTtBQUM1QixDQUFDIiwiZmlsZSI6ImV4YW1wbGVUZXN0RmlsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6Ii4uXFxzcmMifQ==
package/lib/help.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- import { OptionDefinition } from "./OptionsDefinition";
1
+ import { OptionDefinition } from "./OptionsDefinitions";
2
2
  export declare function printHelp(optionsDefinitions: OptionDefinition[]): void;
package/lib/help.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.printHelp = void 0;
3
4
  function printHelp(optionsDefinitions) {
4
5
  console.log();
5
6
  console.log("Help");
@@ -18,3 +19,5 @@ function printHelp(optionsDefinitions) {
18
19
  });
19
20
  }
20
21
  exports.printHelp = printHelp;
22
+
23
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsU0FBUyxDQUFDLGtCQUFzQztJQUMvRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVkLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM5QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWixZQUFZLElBQUksTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEM7UUFFRCxZQUFZLElBQUksS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFO1lBQ25CLFlBQVksSUFBSSxlQUFlLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNoRDtRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBckJELDhCQXFCQyIsImZpbGUiOiJoZWxwLmpzIiwic291cmNlUm9vdCI6Ii4uXFxzcmMifQ==
package/lib/index.d.ts CHANGED
@@ -1 +1,2 @@
1
+ #!/usr/bin/env node
1
2
  export {};
package/lib/index.js CHANGED
@@ -1,91 +1,116 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
6
+ }) : (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ o[k2] = m[k];
9
+ }));
10
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
11
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
12
+ }) : function(o, v) {
13
+ o["default"] = v;
14
+ });
15
+ var __importStar = (this && this.__importStar) || function (mod) {
16
+ if (mod && mod.__esModule) return mod;
17
+ var result = {};
18
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
19
+ __setModuleDefault(result, mod);
20
+ return result;
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
24
  };
11
25
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const args = require("command-line-args");
13
- const glob = require("glob");
14
- const path = require("path");
26
+ const command_line_args_1 = __importDefault(require("command-line-args"));
27
+ const glob_1 = __importDefault(require("glob"));
28
+ const path_1 = __importDefault(require("path"));
29
+ const OptionsDefinitions_1 = require("./OptionsDefinitions");
15
30
  const help_1 = require("./help");
16
- const TestSuiteClass_1 = require("./TestSuiteClass");
17
- const SpecReporter_1 = require("./SpecReporter");
18
- const PerformancePolyfill_1 = require("./PerformancePolyfill");
19
- PerformancePolyfill_1.polyfillPerformance();
20
- const optionsDefinitions = [
21
- {
22
- name: 'glob', alias: 'g',
23
- type: String,
24
- defaultValue: "./!(node_modules)/**/*.test.js",
25
- description: "Test files glob pattern."
26
- },
27
- {
28
- name: "filter", alias: "f",
29
- type: String,
30
- defaultOption: true,
31
- defaultValue: "",
32
- description: "Filters tests."
33
- },
34
- {
35
- name: 'help', alias: 'h',
36
- type: Boolean,
37
- description: "Show help."
38
- },
39
- ];
40
- const options = args(optionsDefinitions);
41
- if (options.help) {
42
- help_1.printHelp(optionsDefinitions);
43
- process.exit();
44
- }
45
- glob(options.glob, (error, matches) => {
46
- if (error) {
47
- console.error(error);
48
- process.exit(1);
49
- }
50
- test(matches).catch(reason => {
51
- console.error("An unexpected error has occured:", reason);
52
- });
53
- });
54
- function test(files) {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- let suite = createRootSuite(files);
57
- let reporter = new SpecReporter_1.SpecReporter(console);
58
- reporter.listenTo(suite);
59
- let passed = yield suite.run({ filter: options.filter });
60
- if (passed) {
61
- process.exit(0);
31
+ const Suite_1 = require("./Suite");
32
+ const reporters_1 = require("./reporters");
33
+ main();
34
+ async function main() {
35
+ try {
36
+ const options = (0, command_line_args_1.default)(OptionsDefinitions_1.optionsDefinitions);
37
+ (0, OptionsDefinitions_1.validateOptions)(options);
38
+ if (options.help) {
39
+ (0, help_1.printHelp)(OptionsDefinitions_1.optionsDefinitions);
40
+ return;
62
41
  }
63
- else {
64
- process.exit(1);
42
+ let testFiles = await getTestFiles(options);
43
+ if (options.discover) {
44
+ await outputDiscoveredTests(testFiles, options);
45
+ return;
65
46
  }
47
+ const passed = await test(testFiles, options);
48
+ if (!passed)
49
+ process.exit(options.testFailureExitCode);
50
+ }
51
+ catch (error) {
52
+ console.error(error);
53
+ process.exit(-1);
54
+ }
55
+ }
56
+ ;
57
+ function getTestFiles(options) {
58
+ return new Promise((resolve, reject) => {
59
+ (0, glob_1.default)(options.glob, (error, matches) => {
60
+ if (error) {
61
+ reject(error);
62
+ }
63
+ else {
64
+ resolve(matches);
65
+ }
66
+ });
66
67
  });
67
68
  }
68
- function createRootSuite(files) {
69
- let rootSuite = new TestSuiteClass_1.TestSuiteClass();
69
+ async function test(files, options) {
70
+ const suite = await createRootSuite(files, !!options.debug);
71
+ const reporter = createReporter(options.reporter);
72
+ reporter.listenTo(suite);
73
+ if (options.filter)
74
+ suite.treeShake(options.filter.toLowerCase());
75
+ return await suite.run({ debug: !!options.debug });
76
+ }
77
+ function createReporter(reporter) {
78
+ switch (reporter) {
79
+ case "spec":
80
+ return new reporters_1.SpecReporter(console);
81
+ case "json":
82
+ return new reporters_1.JsonReporter(console);
83
+ }
84
+ }
85
+ async function createRootSuite(files, isDebug) {
86
+ let rootSuite = new Suite_1.Suite();
87
+ let testFileFunctions = [];
70
88
  for (let file of files) {
71
- processTestFile(rootSuite, file);
89
+ testFileFunctions.push(await getTestFileFunction(file));
90
+ }
91
+ for (let testFunc of testFileFunctions) {
92
+ testFunc(rootSuite);
72
93
  }
73
94
  return rootSuite;
74
95
  }
75
- function processTestFile(suite, file) {
96
+ async function getTestFileFunction(file) {
76
97
  let testFileFunction;
77
98
  try {
78
- testFileFunction = require(path.resolve(file));
99
+ testFileFunction = await Promise.resolve().then(() => __importStar(require(path_1.default.resolve(file))));
79
100
  }
80
101
  catch (reason) {
81
- console.error(`The file '${file}' matched the tests glob but failed to be imported. reason:`, reason);
82
- process.exit(1);
102
+ throw `The file '${file}' matched the tests glob but failed to be imported. reason: ${reason}`;
83
103
  }
84
104
  if (typeof testFileFunction != "function")
85
105
  testFileFunction = testFileFunction.default;
86
106
  if (typeof testFileFunction != "function") {
87
- console.error(`The file '${file}' matched the tests glob but did not export a default function.`);
88
- process.exit(1);
107
+ throw `The file '${file}' matched the tests glob but did not export a default function.`;
89
108
  }
90
- testFileFunction(suite);
109
+ return testFileFunction;
110
+ }
111
+ async function outputDiscoveredTests(files, options) {
112
+ let suite = await createRootSuite(files, options.debug);
113
+ console.log(JSON.stringify(suite.discover()));
91
114
  }
115
+
116
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImluZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSwwRUFBcUM7QUFDckMsZ0RBQXdCO0FBQ3hCLGdEQUF3QjtBQUN4Qiw2REFBb0Y7QUFDcEYsaUNBQW1DO0FBQ25DLG1DQUFnQztBQUNoQywyQ0FBbUU7QUFJbkUsSUFBSSxFQUFFLENBQUM7QUFFUCxLQUFLLFVBQVUsSUFBSTtJQUNsQixJQUFJO1FBQ0gsTUFBTSxPQUFPLEdBQVksSUFBQSwyQkFBSSxFQUFDLHVDQUFrQixDQUFZLENBQUM7UUFDN0QsSUFBQSxvQ0FBZSxFQUFDLE9BQU8sQ0FBQyxDQUFBO1FBRXhCLElBQUksT0FBTyxDQUFDLElBQUksRUFBRTtZQUNqQixJQUFBLGdCQUFTLEVBQUMsdUNBQWtCLENBQUMsQ0FBQztZQUM5QixPQUFNO1NBQ047UUFFRCxJQUFJLFNBQVMsR0FBRyxNQUFNLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QyxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDckIsTUFBTSxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsT0FBTTtTQUNOO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxNQUFNO1lBQ1YsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztLQUMzQztJQUNELE9BQU8sS0FBSyxFQUFFO1FBQ2IsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDRixDQUFDO0FBQUEsQ0FBQztBQUVGLFNBQVMsWUFBWSxDQUFDLE9BQWdCO0lBQ3JDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDdEMsSUFBQSxjQUFJLEVBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUNyQyxJQUFJLEtBQUssRUFBRTtnQkFDVixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDZDtpQkFDSTtnQkFDSixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakI7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELEtBQUssVUFBVSxJQUFJLENBQUMsS0FBZSxFQUFFLE9BQWdCO0lBQ3BELE1BQU0sS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTVELE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEQsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUV6QixJQUFJLE9BQU8sQ0FBQyxNQUFNO1FBQ2pCLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRS9DLE9BQU8sTUFBTSxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztBQUNwRCxDQUFDO0FBRUQsU0FBUyxjQUFjLENBQUMsUUFBeUI7SUFDaEQsUUFBUSxRQUFRLEVBQUU7UUFDakIsS0FBSyxNQUFNO1lBQ1YsT0FBTyxJQUFJLHdCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsS0FBSyxNQUFNO1lBQ1YsT0FBTyxJQUFJLHdCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDbEM7QUFDRixDQUFDO0FBRUQsS0FBSyxVQUFVLGVBQWUsQ0FBQyxLQUFlLEVBQUUsT0FBZ0I7SUFDL0QsSUFBSSxTQUFTLEdBQUcsSUFBSSxhQUFLLEVBQUUsQ0FBQztJQUU1QixJQUFJLGlCQUFpQixHQUF1QixFQUFFLENBQUM7SUFFL0MsS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLEVBQUU7UUFDdkIsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztLQUN4RDtJQUVELEtBQUssSUFBSSxRQUFRLElBQUksaUJBQWlCLEVBQUU7UUFDdkMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0tBQ3BCO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbEIsQ0FBQztBQUVELEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxJQUFZO0lBQzlDLElBQUksZ0JBQXFCLENBQUM7SUFFMUIsSUFBSTtRQUNILGdCQUFnQixHQUFHLHdEQUFhLGNBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUMsQ0FBQztLQUNwRDtJQUNELE9BQU8sTUFBTSxFQUFFO1FBQ2QsTUFBTSxhQUFhLElBQUksK0RBQStELE1BQU0sRUFBRSxDQUFDO0tBQy9GO0lBRUQsSUFBSSxPQUFPLGdCQUFnQixJQUFJLFVBQVU7UUFDeEMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsT0FBTyxDQUFDO0lBRTdDLElBQUksT0FBTyxnQkFBZ0IsSUFBSSxVQUFVLEVBQUU7UUFDMUMsTUFBTSxhQUFhLElBQUksaUVBQWlFLENBQUM7S0FDekY7SUFFRCxPQUFPLGdCQUFnQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBZSxFQUFFLE9BQWdCO0lBQ3JFLElBQUksS0FBSyxHQUFHLE1BQU0sZUFBZSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDL0MsQ0FBQyIsImZpbGUiOiJpbmRleC5qcyIsInNvdXJjZVJvb3QiOiIuLlxcc3JjIn0=
@@ -0,0 +1,20 @@
1
+ import { SuiteResultStatus } from "../run-results/SuiteRunResult";
2
+ import { TestRunResult } from "../run-results/TestRunResult";
3
+ import { Suite } from "../Suite";
4
+ import { Reporter } from "./Reporter";
5
+ export interface SuiteResult {
6
+ title: string;
7
+ elapsed: number;
8
+ status: SuiteResultStatus;
9
+ tests: TestRunResult[];
10
+ childrenSuites: SuiteResult[];
11
+ }
12
+ export declare class JsonReporter implements Reporter {
13
+ private output;
14
+ private suiteToResultMap;
15
+ private testToResultMap;
16
+ constructor(output: Console);
17
+ listenTo(rootSuite: Suite): void;
18
+ private outputResultsFor;
19
+ private getResultOfSuite;
20
+ }
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.JsonReporter = void 0;
4
+ class JsonReporter {
5
+ constructor(output) {
6
+ this.output = output;
7
+ this.suiteToResultMap = new Map();
8
+ this.testToResultMap = new Map();
9
+ }
10
+ listenTo(rootSuite) {
11
+ rootSuite.onSuiteEnded.add(args => {
12
+ this.suiteToResultMap.set(args.suite, args.result);
13
+ if (args.suite == rootSuite)
14
+ this.outputResultsFor(rootSuite);
15
+ });
16
+ rootSuite.onTestEnded.add(args => {
17
+ this.testToResultMap.set(args.test, args.result);
18
+ });
19
+ }
20
+ outputResultsFor(suite) {
21
+ const result = this.getResultOfSuite(suite);
22
+ this.output.log(JSON.stringify(result));
23
+ }
24
+ getResultOfSuite(suite) {
25
+ const runResult = this.suiteToResultMap.get(suite);
26
+ const tests = suite.tests.map(e => this.testToResultMap.get(e));
27
+ const childrenSuites = suite.childrenSuites.map(e => this.getResultOfSuite(e));
28
+ return {
29
+ title: suite.title,
30
+ status: runResult.status,
31
+ elapsed: runResult.elapsed,
32
+ tests: tests,
33
+ childrenSuites: childrenSuites
34
+ };
35
+ }
36
+ }
37
+ exports.JsonReporter = JsonReporter;
38
+
39
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9Kc29uUmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBY0EsTUFBYSxZQUFZO0lBSXhCLFlBQW9CLE1BQWU7UUFBZixXQUFNLEdBQU4sTUFBTSxDQUFTO1FBSDNCLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDO1FBQ3BELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUM7SUFHekQsQ0FBQztJQUVNLFFBQVEsQ0FBQyxTQUFnQjtRQUMvQixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNqQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRW5ELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxTQUFTO2dCQUMxQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFFSCxTQUFTLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFZO1FBQ3BDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVPLGdCQUFnQixDQUFDLEtBQVk7UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUNwRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLENBQUM7UUFDakUsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztRQUVoRixPQUFPO1lBQ04sS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ2xCLE1BQU0sRUFBRSxTQUFTLENBQUMsTUFBTTtZQUN4QixPQUFPLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDMUIsS0FBSyxFQUFFLEtBQUs7WUFDWixjQUFjLEVBQUUsY0FBYztTQUM5QixDQUFDO0lBQ0gsQ0FBQztDQUNEO0FBdkNELG9DQXVDQyIsImZpbGUiOiJyZXBvcnRlcnMvSnNvblJlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,4 @@
1
+ import { Suite } from "../Suite";
2
+ export interface Reporter {
3
+ listenTo(suite: Suite): void;
4
+ }
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+
4
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9SZXBvcnRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwiZmlsZSI6InJlcG9ydGVycy9SZXBvcnRlci5qcyIsInNvdXJjZVJvb3QiOiIuLlxcLi5cXHNyYyJ9
@@ -0,0 +1,14 @@
1
+ import { Suite } from "../Suite";
2
+ import { Reporter } from "./Reporter";
3
+ export declare class SpecReporter implements Reporter {
4
+ private output;
5
+ private symbols;
6
+ private indentation;
7
+ private passedCount;
8
+ private errors;
9
+ constructor(output: Console);
10
+ listenTo(rootSuite: Suite): void;
11
+ private onEnd;
12
+ private formatElapsed;
13
+ private getTestFullTitle;
14
+ }
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.SpecReporter = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class SpecReporter {
9
+ constructor(output) {
10
+ this.output = output;
11
+ this.symbols = {
12
+ ok: '✓',
13
+ err: '✖',
14
+ };
15
+ this.indentation = " ";
16
+ this.passedCount = 0;
17
+ this.errors = [];
18
+ }
19
+ listenTo(rootSuite) {
20
+ let indent = "";
21
+ rootSuite.onSuiteStarted.add(suite => {
22
+ if (suite == rootSuite)
23
+ return;
24
+ this.output.log();
25
+ this.output.info(indent + suite.title);
26
+ indent += this.indentation;
27
+ });
28
+ rootSuite.onSuiteEnded.add(args => {
29
+ indent = indent.substr(0, indent.length - this.indentation.length);
30
+ if (args.suite == rootSuite) {
31
+ this.onEnd();
32
+ }
33
+ });
34
+ rootSuite.onTestEnded.add(args => {
35
+ const result = args.result;
36
+ const elapsed = this.formatElapsed(result.elapsed);
37
+ if (result.passed) {
38
+ this.passedCount++;
39
+ this.output.log(chalk_1.default.green(`${indent}${this.symbols.ok} ${result.title}`) + ` ${elapsed}`);
40
+ }
41
+ else {
42
+ this.errors.push(args);
43
+ this.output.log(chalk_1.default.red(`${indent}${this.symbols.err} ${result.title}`) + ` ${elapsed}`);
44
+ }
45
+ });
46
+ }
47
+ onEnd() {
48
+ if (!this.errors)
49
+ return;
50
+ this.output.log();
51
+ this.output.log("Failed tests:");
52
+ this.output.log("=============");
53
+ for (let failedTestRun of this.errors) {
54
+ this.output.log();
55
+ let title = this.getTestFullTitle(failedTestRun.test);
56
+ this.output.log(title);
57
+ let isError = failedTestRun.result.reason instanceof Error;
58
+ let message = isError ?
59
+ failedTestRun.result.reason.message :
60
+ JSON.stringify(failedTestRun.result.reason);
61
+ this.output.log(this.indentation + chalk_1.default.red(`${message}`));
62
+ isError && this.output.log(this.indentation + `${failedTestRun.result.reason.stack}`);
63
+ }
64
+ this.output.log();
65
+ this.output.log(chalk_1.default.green(`${this.passedCount} passing`));
66
+ if (this.errors.length > 0) {
67
+ this.output.log(chalk_1.default.red(`${this.errors.length} failing`));
68
+ }
69
+ this.output.log();
70
+ }
71
+ formatElapsed(elapsed) {
72
+ return chalk_1.default.grey(`(${elapsed.toFixed(2)}ms)`);
73
+ }
74
+ getTestFullTitle(test) {
75
+ let titles = [test.title];
76
+ let parent = test.parent;
77
+ while (parent && parent.title) {
78
+ titles.push(parent.title);
79
+ parent = parent.parent;
80
+ }
81
+ let title = titles.pop();
82
+ while (titles.length > 0) {
83
+ title += " -> " + titles.pop();
84
+ }
85
+ return title;
86
+ }
87
+ }
88
+ exports.SpecReporter = SpecReporter;
89
+
90
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9TcGVjUmVwb3J0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBSzFCLE1BQWEsWUFBWTtJQVd4QixZQUFvQixNQUFlO1FBQWYsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQVYzQixZQUFPLEdBQUc7WUFDakIsRUFBRSxFQUFFLEdBQUc7WUFDUCxHQUFHLEVBQUUsR0FBRztTQUNSLENBQUM7UUFFTSxnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVuQixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixXQUFNLEdBQW9CLEVBQUUsQ0FBQztJQUdyQyxDQUFDO0lBRU0sUUFBUSxDQUFDLFNBQWdCO1FBQy9CLElBQUksTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUVoQixTQUFTLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLEtBQUssSUFBSSxTQUFTO2dCQUNyQixPQUFPO1lBRVIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZDLE1BQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDakMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVuRSxJQUFJLElBQUksQ0FBQyxLQUFLLElBQUksU0FBUyxFQUFFO2dCQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDYjtRQUNGLENBQUMsQ0FBQyxDQUFDO1FBRUgsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENB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QWEsQ0FBQyxPQUFlO1FBQ3BDLE9BQU8sZUFBSyxDQUFDLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2xDLElBQUksTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFCLElBQUksTUFBTSxHQUFzQixJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTVDLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7WUFDOUIsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7U0FDdkI7UUFFRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFHLENBQUM7UUFFMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN6QixLQUFLLElBQUksTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2QsQ0FBQztDQUNEO0FBeEdELG9DQXdHQyIsImZpbGUiOiJyZXBvcnRlcnMvU3BlY1JlcG9ydGVyLmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,3 @@
1
+ export * from "./Reporter";
2
+ export * from "./SpecReporter";
3
+ export * from "./JsonReporter";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./Reporter"), exports);
14
+ __exportStar(require("./SpecReporter"), exports);
15
+ __exportStar(require("./JsonReporter"), exports);
16
+
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJlcG9ydGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSw2Q0FBMkI7QUFDM0IsaURBQStCO0FBQy9CLGlEQUErQiIsImZpbGUiOiJyZXBvcnRlcnMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFxzcmMifQ==
@@ -0,0 +1,11 @@
1
+ export declare enum SuiteResultStatus {
2
+ Passed = "passed",
3
+ Failed = "failed",
4
+ Partial = "partial"
5
+ }
6
+ export declare class SuiteRunResult {
7
+ title: string;
8
+ elapsed: number;
9
+ status: SuiteResultStatus;
10
+ constructor(title: string, elapsed: number, status: SuiteResultStatus);
11
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SuiteRunResult = exports.SuiteResultStatus = void 0;
4
+ var SuiteResultStatus;
5
+ (function (SuiteResultStatus) {
6
+ SuiteResultStatus["Passed"] = "passed";
7
+ SuiteResultStatus["Failed"] = "failed";
8
+ SuiteResultStatus["Partial"] = "partial";
9
+ })(SuiteResultStatus = exports.SuiteResultStatus || (exports.SuiteResultStatus = {}));
10
+ class SuiteRunResult {
11
+ constructor(title, elapsed, status) {
12
+ this.title = title;
13
+ this.elapsed = elapsed;
14
+ this.status = status;
15
+ }
16
+ }
17
+ exports.SuiteRunResult = SuiteRunResult;
18
+
19
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL1N1aXRlUnVuUmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLElBQVksaUJBSVg7QUFKRCxXQUFZLGlCQUFpQjtJQUM1QixzQ0FBaUIsQ0FBQTtJQUNqQixzQ0FBaUIsQ0FBQTtJQUNqQix3Q0FBbUIsQ0FBQTtBQUNwQixDQUFDLEVBSlcsaUJBQWlCLEdBQWpCLHlCQUFpQixLQUFqQix5QkFBaUIsUUFJNUI7QUFFRCxNQUFhLGNBQWM7SUFDMUIsWUFBbUIsS0FBYSxFQUFTLE9BQWUsRUFBUyxNQUF5QjtRQUF2RSxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFTLFdBQU0sR0FBTixNQUFNLENBQW1CO0lBQzFGLENBQUM7Q0FDRDtBQUhELHdDQUdDIiwiZmlsZSI6InJ1bi1yZXN1bHRzL1N1aXRlUnVuUmVzdWx0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,9 @@
1
+ import { TestStage } from "../TestStage";
2
+ export declare class TestRunResult {
3
+ title: string;
4
+ elapsed: number;
5
+ stage: TestStage;
6
+ passed: boolean;
7
+ reason?: any;
8
+ constructor(title: string, elapsed: number, stage: TestStage, passed: boolean, reason?: any);
9
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TestRunResult = void 0;
4
+ class TestRunResult {
5
+ constructor(title, elapsed, stage, passed, reason) {
6
+ this.title = title;
7
+ this.elapsed = elapsed;
8
+ this.stage = stage;
9
+ this.passed = passed;
10
+ this.reason = reason;
11
+ }
12
+ }
13
+ exports.TestRunResult = TestRunResult;
14
+
15
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL1Rlc3RSdW5SZXN1bHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBYSxhQUFhO0lBQ3pCLFlBQW1CLEtBQWEsRUFBUyxPQUFlLEVBQVMsS0FBZ0IsRUFBUyxNQUFlLEVBQVMsTUFBWTtRQUEzRyxVQUFLLEdBQUwsS0FBSyxDQUFRO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQVc7UUFBUyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBTTtJQUM5SCxDQUFDO0NBQ0Q7QUFIRCxzQ0FHQyIsImZpbGUiOiJydW4tcmVzdWx0cy9UZXN0UnVuUmVzdWx0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
@@ -0,0 +1,2 @@
1
+ export * from "./SuiteRunResult";
2
+ export * from "./TestRunResult";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ __exportStar(require("./SuiteRunResult"), exports);
14
+ __exportStar(require("./TestRunResult"), exports);
15
+
16
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInJ1bi1yZXN1bHRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLG1EQUFpQztBQUNqQyxrREFBZ0MiLCJmaWxlIjoicnVuLXJlc3VsdHMvaW5kZXguanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFxzcmMifQ==