just-test-node 1.4.3 → 2.0.0-alpha.1
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/README.md +11 -15
- package/lib/Discover.d.ts +25 -0
- package/lib/Discover.js +4 -0
- package/lib/OptionsDefinitions.d.ts +16 -0
- package/lib/OptionsDefinitions.js +61 -0
- package/lib/StackTrace.d.ts +1 -0
- package/lib/StackTrace.js +44 -0
- package/lib/Suite.d.ts +46 -0
- package/lib/Suite.js +113 -0
- package/lib/SuiteProvider.d.ts +9 -0
- package/lib/SuiteProvider.js +88 -0
- package/lib/Test.d.ts +13 -6
- package/lib/Test.js +41 -39
- package/lib/TestStage.d.ts +1 -1
- package/lib/TestStage.js +3 -0
- package/lib/code-position-resolution.d.ts +2 -0
- package/lib/code-position-resolution.js +50 -0
- package/lib/examples/dir-suite/@test-suite +0 -0
- package/lib/examples/dir-suite/child-dir-suite/@test-suite +0 -0
- package/lib/{exampleTestFile.test.d.ts → examples/dir-suite/child-dir-suite/childDirTests.test.d.ts} +0 -0
- package/lib/examples/dir-suite/child-dir-suite/childDirTests.test.js +9 -0
- package/lib/examples/dir-suite/inDirSuite.test.d.ts +2 -0
- package/lib/examples/dir-suite/inDirSuite.test.js +9 -0
- package/lib/examples/dir-suite/just-a-folder/inJustAFolderTest.d.ts +2 -0
- package/lib/examples/dir-suite/just-a-folder/inJustAFolderTest.js +9 -0
- package/lib/examples/exampleTestFile.test.d.ts +2 -0
- package/lib/examples/exampleTestFile.test.js +57 -0
- package/lib/help.d.ts +1 -1
- package/lib/help.js +3 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +111 -70
- package/lib/reporters/JsonReporter.d.ts +20 -0
- package/lib/reporters/JsonReporter.js +39 -0
- package/lib/reporters/Reporter.d.ts +4 -0
- package/lib/reporters/Reporter.js +4 -0
- package/lib/reporters/SpecReporter.d.ts +14 -0
- package/lib/reporters/SpecReporter.js +90 -0
- package/lib/reporters/index.d.ts +3 -0
- package/lib/reporters/index.js +17 -0
- package/lib/run-results/SuiteRunResult.d.ts +11 -0
- package/lib/run-results/SuiteRunResult.js +19 -0
- package/lib/run-results/TestRunResult.d.ts +9 -0
- package/lib/run-results/TestRunResult.js +15 -0
- package/lib/run-results/index.d.ts +2 -0
- package/lib/run-results/index.js +16 -0
- package/package.json +69 -64
- package/lib/OptionsDefinition.d.ts +0 -4
- package/lib/OptionsDefinition.js +0 -2
- package/lib/PerformancePolyfill.d.ts +0 -1
- package/lib/PerformancePolyfill.js +0 -14
- package/lib/SpecReporter.d.ts +0 -12
- package/lib/SpecReporter.js +0 -74
- package/lib/TestRunResult.d.ts +0 -9
- package/lib/TestRunResult.js +0 -11
- package/lib/TestSuiteClass.d.ts +0 -27
- package/lib/TestSuiteClass.js +0 -85
- package/lib/exampleTestFile.test.js +0 -65
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getFunctionCodeRange = void 0;
|
|
4
|
+
const StackTrace_1 = require("./StackTrace");
|
|
5
|
+
function getFunctionCodeRange(func, definingFunc) {
|
|
6
|
+
const { filePath, callPosition } = getCallerPosition(definingFunc);
|
|
7
|
+
const endLocation = isInline(func) ?
|
|
8
|
+
getInlineFuncEndPosition(func, callPosition) :
|
|
9
|
+
callPosition;
|
|
10
|
+
const location = { filePath, start: callPosition, end: endLocation };
|
|
11
|
+
return location;
|
|
12
|
+
}
|
|
13
|
+
exports.getFunctionCodeRange = getFunctionCodeRange;
|
|
14
|
+
function getCallerPosition(func) {
|
|
15
|
+
const callSiteText = (0, StackTrace_1.getCallerLocationText)(func);
|
|
16
|
+
const separator2 = callSiteText.lastIndexOf(":");
|
|
17
|
+
const separator1 = callSiteText.lastIndexOf(":", separator2 - 1);
|
|
18
|
+
const filePath = callSiteText.slice(0, separator1);
|
|
19
|
+
const rowText = callSiteText.slice(separator1 + 1, separator2);
|
|
20
|
+
const columnText = callSiteText.slice(separator2 + 1);
|
|
21
|
+
const line = parseInt(rowText);
|
|
22
|
+
const column = parseInt(columnText);
|
|
23
|
+
return { filePath, callPosition: { line: line - 1, column: column - 1 } };
|
|
24
|
+
}
|
|
25
|
+
function getInlineFuncEndPosition(func, start) {
|
|
26
|
+
const position = getFuncRelativeEndPosition(func);
|
|
27
|
+
const endLine = start.line + position.line;
|
|
28
|
+
const endColumn = position.line == 0 ?
|
|
29
|
+
start.column :
|
|
30
|
+
position.column;
|
|
31
|
+
return { line: endLine, column: endColumn };
|
|
32
|
+
}
|
|
33
|
+
function getFuncRelativeEndPosition(func) {
|
|
34
|
+
let line = 0;
|
|
35
|
+
let column = 0;
|
|
36
|
+
const text = func.toString();
|
|
37
|
+
for (let i = 0; i < text.length; i++) {
|
|
38
|
+
if (text[i] == "\n") {
|
|
39
|
+
line++;
|
|
40
|
+
column = 0;
|
|
41
|
+
}
|
|
42
|
+
column++;
|
|
43
|
+
}
|
|
44
|
+
return { line, column };
|
|
45
|
+
}
|
|
46
|
+
function isInline(func) {
|
|
47
|
+
return func.name.length == 0;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvZGUtcG9zaXRpb24tcmVzb2x1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSw2Q0FBcUQ7QUFFckQsU0FBZ0Isb0JBQW9CLENBQUMsSUFBYyxFQUFFLFlBQXNCO0lBQzFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEdBQUcsaUJBQWlCLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFbkUsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkMsd0JBQXdCLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUMsWUFBWSxDQUFDO0lBRWQsTUFBTSxRQUFRLEdBQXNCLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBRXhGLE9BQU8sUUFBUSxDQUFDO0FBQ2pCLENBQUM7QUFWRCxvREFVQztBQUVELFNBQVMsaUJBQWlCLENBQUMsSUFBYztJQUN4QyxNQUFNLFlBQVksR0FBRyxJQUFBLGtDQUFxQixFQUFDLElBQUksQ0FBQyxDQUFDO0lBRWpELE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakQsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBRWpFLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUMvRCxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUV0RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDL0IsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXBDLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO0FBQzNFLENBQUM7QUFFRCxTQUFTLHdCQUF3QixDQUFDLElBQWMsRUFBRSxLQUFtQjtJQUNwRSxNQUFNLFFBQVEsR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVsRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFFM0MsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNyQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZCxRQUFRLENBQUMsTUFBTSxDQUFDO0lBRWpCLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FBQyxJQUFjO0lBQ2pELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztJQUNiLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztJQUVmLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUU3QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUNyQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDcEIsSUFBSSxFQUFFLENBQUM7WUFDUCxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQ1g7UUFFRCxNQUFNLEVBQUUsQ0FBQztLQUNUO0lBRUQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN6QixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQUMsSUFBYztJQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQztBQUM5QixDQUFDIiwiZmlsZSI6ImNvZGUtcG9zaXRpb24tcmVzb2x1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLlxcc3JjIn0=
|
|
File without changes
|
|
File without changes
|
package/lib/{exampleTestFile.test.d.ts → examples/dir-suite/child-dir-suite/childDirTests.test.d.ts}
RENAMED
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function default_1(suite) {
|
|
4
|
+
suite.test("test in child-dir-suite", t => {
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
exports.default = default_1;
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVzL2Rpci1zdWl0ZS9jaGlsZC1kaXItc3VpdGUvY2hpbGREaXJUZXN0cy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsbUJBQXlCLEtBQWdCO0lBQ3hDLEtBQUssQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDMUMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSEQsNEJBR0MiLCJmaWxlIjoiZXhhbXBsZXMvZGlyLXN1aXRlL2NoaWxkLWRpci1zdWl0ZS9jaGlsZERpclRlc3RzLnRlc3QuanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFwuLlxcLi5cXHNyYyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function default_1(suite) {
|
|
4
|
+
suite.test("test in dir-suite", t => {
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
exports.default = default_1;
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVzL2Rpci1zdWl0ZS9pbkRpclN1aXRlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxtQkFBeUIsS0FBZ0I7SUFDeEMsS0FBSyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsRUFBRTtJQUNwQyxDQUFDLENBQUMsQ0FBQztBQUNKLENBQUM7QUFIRCw0QkFHQyIsImZpbGUiOiJleGFtcGxlcy9kaXItc3VpdGUvaW5EaXJTdWl0ZS50ZXN0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcLi5cXHNyYyJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function default_1(suite) {
|
|
4
|
+
suite.test("test in just-a-folder", t => {
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
exports.default = default_1;
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVzL2Rpci1zdWl0ZS9qdXN0LWEtZm9sZGVyL2luSnVzdEFGb2xkZXJUZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0EsbUJBQXlCLEtBQWdCO0lBQ3hDLEtBQUssQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDLEVBQUU7SUFDeEMsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBSEQsNEJBR0MiLCJmaWxlIjoiZXhhbXBsZXMvZGlyLXN1aXRlL2p1c3QtYS1mb2xkZXIvaW5KdXN0QUZvbGRlclRlc3QuanMiLCJzb3VyY2VSb290IjoiLi5cXC4uXFwuLlxcLi5cXHNyYyJ9
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
function someFunction() { }
|
|
4
|
+
function default_1(suite) {
|
|
5
|
+
suite.describe("Passing suite", suite => {
|
|
6
|
+
suite.test("Simple test", t => {
|
|
7
|
+
});
|
|
8
|
+
suite.test("Async", async (t) => {
|
|
9
|
+
await Promise.resolve("Hi");
|
|
10
|
+
});
|
|
11
|
+
suite.describe(someFunction, suite => {
|
|
12
|
+
suite.test("Test", t => {
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
});
|
|
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";
|
|
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
|
+
});
|
|
52
|
+
}
|
|
53
|
+
exports.default = default_1;
|
|
54
|
+
function named_function_test_with_spaces(t) {
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVzL2V4YW1wbGVUZXN0RmlsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsU0FBUyxZQUFZLEtBQUssQ0FBQztBQUUzQixtQkFBeUIsS0FBZ0I7SUFDeEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDN0IsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNoQyxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxNQUFNLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQzNCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sTUFBTSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDMUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV6QyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE9BQU8sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDeEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDZCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRTtJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDekMsS0FBSyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxlQUFlLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBOURELDRCQThEQztBQUVELFNBQVMsK0JBQStCLENBQUMsQ0FBYTtBQUN0RCxDQUFDIiwiZmlsZSI6ImV4YW1wbGVzL2V4YW1wbGVUZXN0RmlsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6Ii4uXFwuLlxcc3JjIn0=
|
package/lib/help.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { OptionDefinition } from "./
|
|
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
package/lib/index.js
CHANGED
|
@@ -1,91 +1,132 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
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
|
|
13
|
-
const
|
|
14
|
-
const
|
|
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
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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 reporters_1 = require("./reporters");
|
|
32
|
+
const SuiteProvider_1 = require("./SuiteProvider");
|
|
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
|
-
|
|
64
|
-
|
|
42
|
+
const restoreConsole = disableConsole();
|
|
43
|
+
const testFilesPromise = getTestFilesAsync(options);
|
|
44
|
+
const directorySuitesPromise = getDirectorySuitesAsync(options);
|
|
45
|
+
const directorySuites = await directorySuitesPromise;
|
|
46
|
+
const suiteProvider = new SuiteProvider_1.SuiteProvider(directorySuites);
|
|
47
|
+
const testFiles = await testFilesPromise;
|
|
48
|
+
restoreConsole();
|
|
49
|
+
if (options.discover) {
|
|
50
|
+
await outputDiscoveredTests(testFiles, suiteProvider);
|
|
51
|
+
return;
|
|
65
52
|
}
|
|
53
|
+
const passed = await test(testFiles, suiteProvider, options);
|
|
54
|
+
if (!passed)
|
|
55
|
+
process.exit(options.testFailureExitCode);
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error(error);
|
|
59
|
+
process.exit(-1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
;
|
|
63
|
+
function disableConsole() {
|
|
64
|
+
const original = console;
|
|
65
|
+
function nothing() { }
|
|
66
|
+
;
|
|
67
|
+
console = { log: nothing, info: nothing, debug: nothing, warn: nothing, error: nothing };
|
|
68
|
+
return () => { console = original; };
|
|
69
|
+
}
|
|
70
|
+
async function getTestFilesAsync(options) {
|
|
71
|
+
return await globAsync(options.glob);
|
|
72
|
+
}
|
|
73
|
+
async function getDirectorySuitesAsync(options) {
|
|
74
|
+
return await globAsync(options.directorySuitesGlob);
|
|
75
|
+
}
|
|
76
|
+
function globAsync(pattern) {
|
|
77
|
+
return new Promise((resolve, reject) => {
|
|
78
|
+
(0, glob_1.default)(pattern, (error, matches) => {
|
|
79
|
+
if (error)
|
|
80
|
+
reject(error);
|
|
81
|
+
else
|
|
82
|
+
resolve(matches);
|
|
83
|
+
});
|
|
66
84
|
});
|
|
67
85
|
}
|
|
68
|
-
function
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
86
|
+
async function test(files, suiteProvider, options) {
|
|
87
|
+
const reporter = createReporter(options.reporter);
|
|
88
|
+
disableConsole();
|
|
89
|
+
const suite = await createTree(files, suiteProvider);
|
|
90
|
+
reporter.listenTo(suite);
|
|
91
|
+
if (options.filter)
|
|
92
|
+
suite.treeShake(options.filter.toLowerCase());
|
|
93
|
+
return await suite.run({ debug: options.debug });
|
|
94
|
+
}
|
|
95
|
+
function createReporter(reporter) {
|
|
96
|
+
switch (reporter) {
|
|
97
|
+
case "spec":
|
|
98
|
+
return new reporters_1.SpecReporter(console);
|
|
99
|
+
case "json":
|
|
100
|
+
return new reporters_1.JsonReporter(console);
|
|
72
101
|
}
|
|
73
|
-
return rootSuite;
|
|
74
102
|
}
|
|
75
|
-
function
|
|
103
|
+
async function createTree(filesPaths, suiteProvider) {
|
|
104
|
+
for (let filePath of filesPaths) {
|
|
105
|
+
const testFuncPromise = getTestFileFunctionAsync(filePath);
|
|
106
|
+
const suite = suiteProvider.getSuiteForTestFile(filePath);
|
|
107
|
+
const testFunc = await testFuncPromise;
|
|
108
|
+
testFunc(suite);
|
|
109
|
+
}
|
|
110
|
+
return suiteProvider.root;
|
|
111
|
+
}
|
|
112
|
+
async function getTestFileFunctionAsync(file) {
|
|
76
113
|
let testFileFunction;
|
|
77
114
|
try {
|
|
78
|
-
testFileFunction = require(
|
|
115
|
+
testFileFunction = await Promise.resolve().then(() => __importStar(require(path_1.default.resolve(file))));
|
|
79
116
|
}
|
|
80
117
|
catch (reason) {
|
|
81
|
-
|
|
82
|
-
process.exit(1);
|
|
118
|
+
throw `The file '${file}' matched the tests glob but failed to be imported. reason: ${reason}`;
|
|
83
119
|
}
|
|
84
120
|
if (typeof testFileFunction != "function")
|
|
85
121
|
testFileFunction = testFileFunction.default;
|
|
86
122
|
if (typeof testFileFunction != "function") {
|
|
87
|
-
|
|
88
|
-
process.exit(1);
|
|
123
|
+
throw `The file '${file}' matched the tests glob but did not export a default function.`;
|
|
89
124
|
}
|
|
90
|
-
testFileFunction
|
|
125
|
+
return testFileFunction;
|
|
126
|
+
}
|
|
127
|
+
async function outputDiscoveredTests(files, suiteProvider) {
|
|
128
|
+
let suite = await createTree(files, suiteProvider);
|
|
129
|
+
console.log(JSON.stringify(suite.discover()));
|
|
91
130
|
}
|
|
131
|
+
|
|
132
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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
|
|
@@ -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
|
+
"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,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
|
+
}
|