just-test-node 1.5.0 → 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.
- package/lib/Discover.d.ts +25 -0
- package/lib/Discover.js +4 -0
- package/lib/OptionsDefinitions.d.ts +15 -0
- package/lib/OptionsDefinitions.js +55 -0
- package/lib/StackTrace.d.ts +1 -0
- package/lib/StackTrace.js +44 -0
- package/lib/Suite.d.ts +45 -0
- package/lib/Suite.js +115 -0
- package/lib/Test.d.ts +9 -6
- package/lib/Test.js +16 -12
- package/lib/TestStage.d.ts +1 -1
- package/lib/TestStage.js +2 -1
- package/lib/code-position-resolution.d.ts +2 -0
- package/lib/code-position-resolution.js +50 -0
- package/lib/exampleTestFile.test.js +48 -45
- package/lib/help.d.ts +1 -1
- package/lib/help.js +2 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +62 -39
- 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 -5
- package/lib/OptionsDefinition.js +0 -29
- package/lib/PerformancePolyfill.d.ts +0 -1
- package/lib/PerformancePolyfill.js +0 -16
- package/lib/SpecReporter.d.ts +0 -12
- package/lib/SpecReporter.js +0 -76
- package/lib/TestRunResult.d.ts +0 -9
- package/lib/TestRunResult.js +0 -13
- package/lib/TestSuiteClass.d.ts +0 -28
- package/lib/TestSuiteClass.js +0 -78
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export interface TextPosition {
|
|
2
|
+
/**
|
|
3
|
+
* Zero based line.
|
|
4
|
+
*/
|
|
5
|
+
line: number;
|
|
6
|
+
/**
|
|
7
|
+
* Zero based column.
|
|
8
|
+
*/
|
|
9
|
+
column: number;
|
|
10
|
+
}
|
|
11
|
+
export interface FunctionCodeRange {
|
|
12
|
+
filePath: string;
|
|
13
|
+
start: TextPosition;
|
|
14
|
+
end: TextPosition;
|
|
15
|
+
}
|
|
16
|
+
export interface DiscoveredSuite {
|
|
17
|
+
title: string;
|
|
18
|
+
location: FunctionCodeRange;
|
|
19
|
+
tests: DiscoveredTest[];
|
|
20
|
+
suites: DiscoveredSuite[];
|
|
21
|
+
}
|
|
22
|
+
export interface DiscoveredTest {
|
|
23
|
+
title: string;
|
|
24
|
+
location: FunctionCodeRange;
|
|
25
|
+
}
|
package/lib/Discover.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
|
|
4
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkRpc2NvdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJmaWxlIjoiRGlzY292ZXIuanMiLCJzb3VyY2VSb290IjoiLi5cXHNyYyJ9
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OptionDefinition as ArgsOptionDefinition } from "command-line-args";
|
|
2
|
+
export interface Options {
|
|
3
|
+
glob: string;
|
|
4
|
+
filter: string;
|
|
5
|
+
help: boolean;
|
|
6
|
+
debug: boolean;
|
|
7
|
+
discover: boolean;
|
|
8
|
+
reporter: "spec" | "json";
|
|
9
|
+
testFailureExitCode: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function validateOptions(options: Options): void;
|
|
12
|
+
export interface OptionDefinition extends ArgsOptionDefinition {
|
|
13
|
+
description: string;
|
|
14
|
+
}
|
|
15
|
+
export declare const optionsDefinitions: OptionDefinition[];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.optionsDefinitions = exports.validateOptions = void 0;
|
|
4
|
+
function validateOptions(options) {
|
|
5
|
+
if (!["spec", "json"].includes(options.reporter))
|
|
6
|
+
throw "invalid reporter.";
|
|
7
|
+
}
|
|
8
|
+
exports.validateOptions = validateOptions;
|
|
9
|
+
exports.optionsDefinitions = [
|
|
10
|
+
{
|
|
11
|
+
name: 'glob', alias: 'g',
|
|
12
|
+
type: String,
|
|
13
|
+
defaultValue: "./!(node_modules)/**/*.test.js",
|
|
14
|
+
description: "Test files glob pattern."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
name: "filter", alias: "f",
|
|
18
|
+
type: String,
|
|
19
|
+
defaultOption: true,
|
|
20
|
+
defaultValue: "",
|
|
21
|
+
description: "Filters tests."
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
name: 'help', alias: 'h',
|
|
25
|
+
type: Boolean,
|
|
26
|
+
defaultValue: false,
|
|
27
|
+
description: "Show help."
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'debug',
|
|
31
|
+
type: Boolean,
|
|
32
|
+
defaultValue: false,
|
|
33
|
+
description: "Debug mode. Will disable timeouts."
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'discover',
|
|
37
|
+
type: Boolean,
|
|
38
|
+
defaultValue: false,
|
|
39
|
+
description: "Outputs the available the tests as json."
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "reporter",
|
|
43
|
+
type: String,
|
|
44
|
+
defaultValue: "spec",
|
|
45
|
+
description: `The reporter to use for ouput. Options: "spec", "json"`,
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "testFailureExitCode",
|
|
49
|
+
type: Number,
|
|
50
|
+
defaultValue: 1,
|
|
51
|
+
description: `The exit code to use when has test failures.`,
|
|
52
|
+
}
|
|
53
|
+
];
|
|
54
|
+
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIk9wdGlvbnNEZWZpbml0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFZQSxTQUFnQixlQUFlLENBQUMsT0FBZ0I7SUFDL0MsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO1FBQy9DLE1BQU0sbUJBQW1CLENBQUM7QUFDNUIsQ0FBQztBQUhELDBDQUdDO0FBTVksUUFBQSxrQkFBa0IsR0FBdUI7SUFDckQ7UUFDQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHO1FBQ3hCLElBQUksRUFBRSxNQUFNO1FBQ1osWUFBWSxFQUFFLGdDQUFnQztRQUM5QyxXQUFXLEVBQUUsMEJBQTBCO0tBQ3ZDO0lBQ0Q7UUFDQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxHQUFHO1FBQzFCLElBQUksRUFBRSxNQUFNO1FBQ1osYUFBYSxFQUFFLElBQUk7UUFDbkIsWUFBWSxFQUFFLEVBQUU7UUFDaEIsV0FBVyxFQUFFLGdCQUFnQjtLQUM3QjtJQUNEO1FBQ0MsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRztRQUN4QixJQUFJLEVBQUUsT0FBTztRQUNiLFlBQVksRUFBRSxLQUFLO1FBQ25CLFdBQVcsRUFBRSxZQUFZO0tBQ3pCO0lBQ0Q7UUFDQyxJQUFJLEVBQUUsT0FBTztRQUNiLElBQUksRUFBRSxPQUFPO1FBQ2IsWUFBWSxFQUFFLEtBQUs7UUFDbkIsV0FBVyxFQUFFLG9DQUFvQztLQUNqRDtJQUNEO1FBQ0MsSUFBSSxFQUFFLFVBQVU7UUFDaEIsSUFBSSxFQUFFLE9BQU87UUFDYixZQUFZLEVBQUUsS0FBSztRQUNuQixXQUFXLEVBQUUsMENBQTBDO0tBQ3ZEO0lBQ0Q7UUFDQyxJQUFJLEVBQUUsVUFBVTtRQUNoQixJQUFJLEVBQUUsTUFBTTtRQUNaLFlBQVksRUFBRSxNQUFNO1FBQ3BCLFdBQVcsRUFBRSx3REFBd0Q7S0FDckU7SUFDRDtRQUNDLElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLE1BQU07UUFDWixZQUFZLEVBQUUsQ0FBQztRQUNmLFdBQVcsRUFBRSw4Q0FBOEM7S0FDM0Q7Q0FDRCxDQUFDIiwiZmlsZSI6Ik9wdGlvbnNEZWZpbml0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIuLlxcc3JjIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getCallerLocationText(currentFunction: Function): string;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCallerLocationText = void 0;
|
|
4
|
+
function getCallerLocationText(currentFunction) {
|
|
5
|
+
const originalLimit = Error.stackTraceLimit;
|
|
6
|
+
const originalPrepare = Error.prepareStackTrace;
|
|
7
|
+
Error.stackTraceLimit = 1;
|
|
8
|
+
Error.prepareStackTrace = getFirstCallLocation;
|
|
9
|
+
const object = { stack: "", originalPrepare: originalPrepare };
|
|
10
|
+
Error.captureStackTrace(object, currentFunction);
|
|
11
|
+
const location = object.stack;
|
|
12
|
+
Error.stackTraceLimit = originalLimit;
|
|
13
|
+
Error.prepareStackTrace = originalPrepare;
|
|
14
|
+
return location;
|
|
15
|
+
}
|
|
16
|
+
exports.getCallerLocationText = getCallerLocationText;
|
|
17
|
+
function getFirstCallLocation(object, stack) {
|
|
18
|
+
const callSite = stack[0];
|
|
19
|
+
if (!object.originalPrepare)
|
|
20
|
+
return `${callSite.getFileName()}:${callSite.getLineNumber()}:${callSite.getColumnNumber()}`;
|
|
21
|
+
// Support for ts-node
|
|
22
|
+
const formattedByRuntime = object.originalPrepare(object, [new SimplifiedCallSite(callSite)]);
|
|
23
|
+
return formattedByRuntime.slice("Error\n at ".length);
|
|
24
|
+
}
|
|
25
|
+
class SimplifiedCallSite {
|
|
26
|
+
constructor(callSite) {
|
|
27
|
+
this.callSite = callSite;
|
|
28
|
+
}
|
|
29
|
+
getThis() { return undefined; }
|
|
30
|
+
getTypeName() { return null; }
|
|
31
|
+
getFunction() { return undefined; }
|
|
32
|
+
getFunctionName() { return null; }
|
|
33
|
+
getMethodName() { return null; }
|
|
34
|
+
getFileName() { return this.callSite.getFileName(); }
|
|
35
|
+
getLineNumber() { return this.callSite.getLineNumber(); }
|
|
36
|
+
getColumnNumber() { return this.callSite.getColumnNumber(); }
|
|
37
|
+
getEvalOrigin() { return undefined; }
|
|
38
|
+
isToplevel() { return true; }
|
|
39
|
+
isEval() { return false; }
|
|
40
|
+
isNative() { return false; }
|
|
41
|
+
isConstructor() { return false; }
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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
|
package/lib/Suite.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { TestSuite, TestParams } from "just-test-api";
|
|
2
|
+
import { Event1 } from "itay-events";
|
|
3
|
+
import { Test } from "./Test";
|
|
4
|
+
import { TestRunResult } from "./run-results/TestRunResult";
|
|
5
|
+
import { SuiteRunResult } from "./run-results/SuiteRunResult";
|
|
6
|
+
import { DiscoveredSuite, FunctionCodeRange } from "./Discover";
|
|
7
|
+
export interface RunParams {
|
|
8
|
+
debug: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface TestEndedArgs {
|
|
11
|
+
test: Test;
|
|
12
|
+
result: TestRunResult;
|
|
13
|
+
}
|
|
14
|
+
export interface SuiteEndedArgs {
|
|
15
|
+
suite: Suite;
|
|
16
|
+
result: SuiteRunResult;
|
|
17
|
+
}
|
|
18
|
+
export declare class Suite implements TestSuite {
|
|
19
|
+
title: string;
|
|
20
|
+
location: FunctionCodeRange;
|
|
21
|
+
parent?: Suite;
|
|
22
|
+
childrenSuites: Suite[];
|
|
23
|
+
tests: Test[];
|
|
24
|
+
private isPartial;
|
|
25
|
+
onSuiteStarted: Event1<Suite>;
|
|
26
|
+
onSuiteEnded: Event1<SuiteEndedArgs>;
|
|
27
|
+
onTestStarted: Event1<Test>;
|
|
28
|
+
onTestEnded: Event1<TestEndedArgs>;
|
|
29
|
+
constructor();
|
|
30
|
+
discover(): DiscoveredSuite;
|
|
31
|
+
describe(title: string | {
|
|
32
|
+
name: string;
|
|
33
|
+
}, suiteFunction: (suite: Suite) => void): void;
|
|
34
|
+
test(title: string, testFunction: (test: TestParams) => Promise<void> | void): void;
|
|
35
|
+
testFunc(namedTestFunction: (test: TestParams) => Promise<void> | void): void;
|
|
36
|
+
testFuncs(...namedTestFunctions: ((test: TestParams) => Promise<void> | void)[]): void;
|
|
37
|
+
private getTitleFor;
|
|
38
|
+
run(params: RunParams): Promise<boolean>;
|
|
39
|
+
private getStatus;
|
|
40
|
+
treeShake(lowerCasedFilter: string): boolean;
|
|
41
|
+
private calcIsPartial;
|
|
42
|
+
private isTitlePassingFilter;
|
|
43
|
+
private runDirectDescendantsTests;
|
|
44
|
+
private runSubSuites;
|
|
45
|
+
}
|
package/lib/Suite.js
ADDED
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Suite = void 0;
|
|
4
|
+
const itay_events_1 = require("itay-events");
|
|
5
|
+
const Test_1 = require("./Test");
|
|
6
|
+
const SuiteRunResult_1 = require("./run-results/SuiteRunResult");
|
|
7
|
+
const code_position_resolution_1 = require("./code-position-resolution");
|
|
8
|
+
class Suite {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.title = "";
|
|
11
|
+
this.location = null;
|
|
12
|
+
this.childrenSuites = [];
|
|
13
|
+
this.tests = [];
|
|
14
|
+
this.isPartial = false;
|
|
15
|
+
this.onSuiteStarted = new itay_events_1.Event1();
|
|
16
|
+
this.onSuiteEnded = new itay_events_1.Event1();
|
|
17
|
+
this.onTestStarted = new itay_events_1.Event1();
|
|
18
|
+
this.onTestEnded = new itay_events_1.Event1();
|
|
19
|
+
}
|
|
20
|
+
discover() {
|
|
21
|
+
return {
|
|
22
|
+
title: this.title,
|
|
23
|
+
location: this.location,
|
|
24
|
+
tests: this.tests.map(e => e.discover()),
|
|
25
|
+
suites: this.childrenSuites.map(e => e.discover())
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
describe(title, suiteFunction) {
|
|
29
|
+
let childSuite = new Suite();
|
|
30
|
+
childSuite.title = typeof (title) === "string" ? title : title.name;
|
|
31
|
+
childSuite.location = (0, code_position_resolution_1.getFunctionCodeRange)(suiteFunction, this.describe);
|
|
32
|
+
childSuite.onTestStarted.add(t => this.onTestStarted.trigger(t));
|
|
33
|
+
childSuite.onTestEnded.add(result => this.onTestEnded.trigger(result));
|
|
34
|
+
childSuite.onSuiteStarted.add(s => this.onSuiteStarted.trigger(s));
|
|
35
|
+
childSuite.onSuiteEnded.add(s => this.onSuiteEnded.trigger(s));
|
|
36
|
+
childSuite.parent = this;
|
|
37
|
+
this.childrenSuites.push(childSuite);
|
|
38
|
+
suiteFunction(childSuite);
|
|
39
|
+
}
|
|
40
|
+
test(title, testFunction) {
|
|
41
|
+
const location = (0, code_position_resolution_1.getFunctionCodeRange)(testFunction, this.test);
|
|
42
|
+
this.tests.push(new Test_1.Test(title, testFunction, this, location));
|
|
43
|
+
}
|
|
44
|
+
testFunc(namedTestFunction) {
|
|
45
|
+
const location = (0, code_position_resolution_1.getFunctionCodeRange)(namedTestFunction, this.testFunc);
|
|
46
|
+
this.tests.push(new Test_1.Test(this.getTitleFor(namedTestFunction), namedTestFunction, this, location));
|
|
47
|
+
}
|
|
48
|
+
testFuncs(...namedTestFunctions) {
|
|
49
|
+
for (const test of namedTestFunctions) {
|
|
50
|
+
const location = (0, code_position_resolution_1.getFunctionCodeRange)(test, this.testFuncs);
|
|
51
|
+
this.tests.push(new Test_1.Test(this.getTitleFor(test), test, this, location));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
getTitleFor(func) {
|
|
55
|
+
return func.name.replace(/_/g, " ");
|
|
56
|
+
}
|
|
57
|
+
async run(params) {
|
|
58
|
+
this.onSuiteStarted.trigger(this);
|
|
59
|
+
const startTime = performance.now();
|
|
60
|
+
const testsPassed = await this.runDirectDescendantsTests(params);
|
|
61
|
+
const subSuitesPassed = await this.runSubSuites(params);
|
|
62
|
+
const passed = testsPassed && subSuitesPassed;
|
|
63
|
+
this.onSuiteEnded.trigger({
|
|
64
|
+
suite: this,
|
|
65
|
+
result: new SuiteRunResult_1.SuiteRunResult(this.title, performance.now() - startTime, this.getStatus(passed))
|
|
66
|
+
});
|
|
67
|
+
return passed;
|
|
68
|
+
}
|
|
69
|
+
getStatus(runPassed) {
|
|
70
|
+
if (!runPassed)
|
|
71
|
+
return SuiteRunResult_1.SuiteResultStatus.Failed;
|
|
72
|
+
if (this.isPartial)
|
|
73
|
+
return SuiteRunResult_1.SuiteResultStatus.Partial;
|
|
74
|
+
return SuiteRunResult_1.SuiteResultStatus.Passed;
|
|
75
|
+
}
|
|
76
|
+
treeShake(lowerCasedFilter) {
|
|
77
|
+
if (this.isTitlePassingFilter(lowerCasedFilter))
|
|
78
|
+
return true;
|
|
79
|
+
const originalTestsCount = this.tests.length;
|
|
80
|
+
const originalchildrenSuitesCount = this.childrenSuites.length;
|
|
81
|
+
this.tests = this.tests.filter(e => e.title.toLowerCase().includes(lowerCasedFilter));
|
|
82
|
+
this.childrenSuites = this.childrenSuites.filter(e => e.treeShake(lowerCasedFilter));
|
|
83
|
+
this.isPartial = this.calcIsPartial(originalTestsCount, originalchildrenSuitesCount);
|
|
84
|
+
return this.tests.length > 0 || this.childrenSuites.length > 0;
|
|
85
|
+
}
|
|
86
|
+
calcIsPartial(originalTestsCount, originalchildrenSuitesCount) {
|
|
87
|
+
return this.tests.length < originalTestsCount ||
|
|
88
|
+
this.childrenSuites.length < originalchildrenSuitesCount ||
|
|
89
|
+
this.childrenSuites.some(e => e.isPartial);
|
|
90
|
+
}
|
|
91
|
+
isTitlePassingFilter(lowerCasedFilter) {
|
|
92
|
+
return this.title.toLowerCase().includes(lowerCasedFilter.toLowerCase());
|
|
93
|
+
}
|
|
94
|
+
async runDirectDescendantsTests(testRunOptions) {
|
|
95
|
+
let passed = true;
|
|
96
|
+
for (let test of this.tests) {
|
|
97
|
+
this.onTestStarted.trigger(test);
|
|
98
|
+
let result = await test.run(testRunOptions);
|
|
99
|
+
passed = passed && result.passed;
|
|
100
|
+
this.onTestEnded.trigger({ test, result });
|
|
101
|
+
}
|
|
102
|
+
return passed;
|
|
103
|
+
}
|
|
104
|
+
async runSubSuites(params) {
|
|
105
|
+
let passed = true;
|
|
106
|
+
for (let suite of this.childrenSuites) {
|
|
107
|
+
let suitePassed = await suite.run(params);
|
|
108
|
+
passed = passed && suitePassed;
|
|
109
|
+
}
|
|
110
|
+
return passed;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.Suite = Suite;
|
|
114
|
+
|
|
115
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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QUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFTyxhQUFhLENBQUMsa0JBQTBCLEVBQUUsMkJBQW1DO1FBQ3BGLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsa0JBQWtCO1lBQzVDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxHQUFHLDJCQUEyQjtZQUN4RCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsZ0JBQXdCO1FBQ3BELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRU8sS0FBSyxDQUFDLHlCQUF5QixDQUFDLGNBQThCO1FBQ3JFLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztRQUVsQixLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDNUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakMsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVDLE1BQU0sR0FBRyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUVqQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDZixDQUFDO0lBRU8sS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFpQjtRQUMzQyxJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFFbEIsS0FBSyxJQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3RDLElBQUksV0FBVyxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxNQUFNLEdBQUcsTUFBTSxJQUFJLFdBQVcsQ0FBQztTQUMvQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2YsQ0FBQztDQUNEO0FBaEpELHNCQWdKQyIsImZpbGUiOiJTdWl0ZS5qcyIsInNvdXJjZVJvb3QiOiIuLlxcc3JjIn0=
|
package/lib/Test.d.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { TestParams } from "just-test-api";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { DiscoveredTest, FunctionCodeRange } from "./Discover";
|
|
3
|
+
import { TestRunResult } from "./run-results/TestRunResult";
|
|
4
|
+
import { Suite } from "./Suite";
|
|
4
5
|
export interface TestRunOptions {
|
|
5
6
|
debug: boolean;
|
|
6
7
|
}
|
|
7
8
|
export declare class Test {
|
|
8
9
|
title: string;
|
|
9
10
|
testFunction: (test: TestParams) => Promise<void> | void;
|
|
10
|
-
parent:
|
|
11
|
-
|
|
11
|
+
parent: Suite;
|
|
12
|
+
location: FunctionCodeRange;
|
|
13
|
+
constructor(title: string, testFunction: (test: TestParams) => Promise<void> | void, parent: Suite, location: FunctionCodeRange);
|
|
14
|
+
discover(): DiscoveredTest;
|
|
12
15
|
run(options: TestRunOptions): Promise<TestRunResult>;
|
|
13
|
-
private isPromise
|
|
14
|
-
private
|
|
16
|
+
private isPromise;
|
|
17
|
+
private withTimeout;
|
|
15
18
|
}
|
package/lib/Test.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
3
|
+
exports.Test = void 0;
|
|
4
|
+
const TestRunResult_1 = require("./run-results/TestRunResult");
|
|
4
5
|
const TestStage_1 = require("./TestStage");
|
|
5
6
|
class TestParamsClass {
|
|
6
7
|
constructor() {
|
|
@@ -18,33 +19,36 @@ class TestParamsClass {
|
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
class Test {
|
|
21
|
-
constructor(title, testFunction, parent) {
|
|
22
|
+
constructor(title, testFunction, parent, location) {
|
|
22
23
|
this.title = title;
|
|
23
24
|
this.testFunction = testFunction;
|
|
24
25
|
this.parent = parent;
|
|
26
|
+
this.location = location;
|
|
27
|
+
}
|
|
28
|
+
discover() {
|
|
29
|
+
return { title: this.title, location: this.location };
|
|
25
30
|
}
|
|
26
31
|
async run(options) {
|
|
27
|
-
|
|
32
|
+
const testParams = new TestParamsClass();
|
|
33
|
+
const startTime = performance.now();
|
|
28
34
|
try {
|
|
29
35
|
let result = this.testFunction(testParams);
|
|
30
36
|
if (result && this.isPromise(result)) {
|
|
31
|
-
if (options.debug)
|
|
37
|
+
if (options.debug)
|
|
32
38
|
await result;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
await this.timeout(result, testParams.timeout);
|
|
36
|
-
}
|
|
39
|
+
else
|
|
40
|
+
await this.withTimeout(result, testParams.timeout);
|
|
37
41
|
}
|
|
42
|
+
return Promise.resolve(new TestRunResult_1.TestRunResult(this.title, performance.now() - startTime, testParams.stage, true));
|
|
38
43
|
}
|
|
39
44
|
catch (reason) {
|
|
40
|
-
return Promise.resolve(new TestRunResult_1.TestRunResult(this, testParams.stage, false, reason));
|
|
45
|
+
return Promise.resolve(new TestRunResult_1.TestRunResult(this.title, performance.now() - startTime, testParams.stage, false, reason));
|
|
41
46
|
}
|
|
42
|
-
return Promise.resolve(new TestRunResult_1.TestRunResult(this, testParams.stage, true));
|
|
43
47
|
}
|
|
44
48
|
isPromise(result) {
|
|
45
49
|
return typeof result.then === "function";
|
|
46
50
|
}
|
|
47
|
-
async
|
|
51
|
+
async withTimeout(promise, timeout) {
|
|
48
52
|
let timer = undefined;
|
|
49
53
|
let firstValue = await Promise.race([
|
|
50
54
|
promise,
|
|
@@ -62,4 +66,4 @@ class Test {
|
|
|
62
66
|
}
|
|
63
67
|
exports.Test = Test;
|
|
64
68
|
|
|
65
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,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
|
package/lib/TestStage.d.ts
CHANGED
package/lib/TestStage.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TestStage = void 0;
|
|
3
4
|
var TestStage;
|
|
4
5
|
(function (TestStage) {
|
|
5
6
|
TestStage[TestStage["NoStage"] = 0] = "NoStage";
|
|
@@ -8,4 +9,4 @@ var TestStage;
|
|
|
8
9
|
TestStage[TestStage["Assert"] = 3] = "Assert";
|
|
9
10
|
})(TestStage = exports.TestStage || (exports.TestStage = {}));
|
|
10
11
|
|
|
11
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRlc3RTdGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFZLFNBS1g7QUFMRCxXQUFZLFNBQVM7SUFDakIsK0NBQU8sQ0FBQTtJQUNQLCtDQUFPLENBQUE7SUFDUCx1Q0FBRyxDQUFBO0lBQ0gsNkNBQU0sQ0FBQTtBQUNWLENBQUMsRUFMVyxTQUFTLEdBQVQsaUJBQVMsS0FBVCxpQkFBUyxRQUtwQiIsImZpbGUiOiJUZXN0U3RhZ2UuanMiLCJzb3VyY2VSb290IjoiLi5cXHNyYyJ9
|
|
@@ -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=
|
|
@@ -2,58 +2,61 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
function someFunction() { }
|
|
4
4
|
function default_1(suite) {
|
|
5
|
-
suite.describe("
|
|
6
|
-
suite.
|
|
7
|
-
suite.test("Nothing", t => {
|
|
8
|
-
});
|
|
9
|
-
suite.test("Async", async (t) => {
|
|
10
|
-
await Promise.resolve("Hi");
|
|
11
|
-
});
|
|
12
|
-
suite.describe(someFunction, suite => {
|
|
13
|
-
suite.test("Nothing", t => {
|
|
14
|
-
});
|
|
15
|
-
});
|
|
5
|
+
suite.describe("Passing suite", suite => {
|
|
6
|
+
suite.test("Simple test", t => {
|
|
16
7
|
});
|
|
17
|
-
suite.
|
|
18
|
-
|
|
19
|
-
throw "asdf";
|
|
20
|
-
});
|
|
21
|
-
suite.test("Arrage error", t => {
|
|
22
|
-
t.arrange();
|
|
23
|
-
throw "asdf";
|
|
24
|
-
});
|
|
25
|
-
suite.test("Act error", t => {
|
|
26
|
-
t.act();
|
|
27
|
-
throw "asdf";
|
|
28
|
-
});
|
|
29
|
-
suite.test("Assert error", t => {
|
|
30
|
-
t.assert();
|
|
31
|
-
throw "asdf";
|
|
32
|
-
});
|
|
33
|
-
suite.test("Throw Error", t => {
|
|
34
|
-
t.assert();
|
|
35
|
-
throw new Error("Some error message.");
|
|
36
|
-
});
|
|
37
|
-
suite.test("Throws after await", async (t) => {
|
|
38
|
-
await new Promise(r => setTimeout(r, 1));
|
|
39
|
-
t.assert();
|
|
40
|
-
throw "error";
|
|
41
|
-
});
|
|
42
|
-
suite.test("Timeout reached.", async (t) => {
|
|
43
|
-
t.timeout = 1;
|
|
44
|
-
await new Promise(r => setTimeout(r, 100));
|
|
45
|
-
});
|
|
8
|
+
suite.test("Async", async (t) => {
|
|
9
|
+
await Promise.resolve("Hi");
|
|
46
10
|
});
|
|
47
|
-
suite.describe(
|
|
48
|
-
suite.test("
|
|
11
|
+
suite.describe(someFunction, suite => {
|
|
12
|
+
suite.test("Test", t => {
|
|
49
13
|
});
|
|
50
14
|
});
|
|
51
15
|
});
|
|
52
|
-
suite.describe("
|
|
53
|
-
suite.test("
|
|
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));
|
|
54
44
|
});
|
|
55
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);
|
|
52
|
+
});
|
|
56
53
|
}
|
|
57
54
|
exports.default = default_1;
|
|
55
|
+
function named_function_test_with_spaces(t) {
|
|
56
|
+
}
|
|
57
|
+
function test1(t) {
|
|
58
|
+
}
|
|
59
|
+
function test2(t) {
|
|
60
|
+
}
|
|
58
61
|
|
|
59
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
62
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImV4YW1wbGVUZXN0RmlsZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsU0FBUyxZQUFZLEtBQUssQ0FBQztBQUUzQixtQkFBeUIsS0FBZ0I7SUFDeEMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7UUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDN0IsTUFBTSxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDcEMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFFdkMsS0FBSyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUNoQyxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1osTUFBTSxNQUFNLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQztRQUVILEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFO1lBQzNCLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNSLE1BQU0sTUFBTSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRTtZQUM5QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE1BQU0sQ0FBQztRQUNkLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDN0IsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDMUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUV6QyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWCxNQUFNLE9BQU8sQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7WUFDeEMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUM7WUFDZCxNQUFNLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVDLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFFSCxLQUFLLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsRUFBRTtJQUN0QyxDQUFDLENBQUMsQ0FBQztJQUVILEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLEVBQUU7UUFDekMsS0FBSyxDQUFDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ2hELEtBQUssQ0FBQyxRQUFRLENBQUMsU0FBUyxlQUFlLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDL0MsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBL0RELDRCQStEQztBQUVELFNBQVMsK0JBQStCLENBQUMsQ0FBYTtBQUN0RCxDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsQ0FBYTtBQUM1QixDQUFDO0FBRUQsU0FBUyxLQUFLLENBQUMsQ0FBYTtBQUM1QixDQUFDIiwiZmlsZSI6ImV4YW1wbGVUZXN0RmlsZS50ZXN0LmpzIiwic291cmNlUm9vdCI6Ii4uXFxzcmMifQ==
|
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");
|
|
@@ -19,4 +20,4 @@ function printHelp(optionsDefinitions) {
|
|
|
19
20
|
}
|
|
20
21
|
exports.printHelp = printHelp;
|
|
21
22
|
|
|
22
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsU0FBZ0IsU0FBUyxDQUFDLGtCQUFzQztJQUMvRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUVkLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUM5QixJQUFJLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUU7WUFDWixZQUFZLElBQUksTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDaEM7UUFFRCxZQUFZLElBQUksS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFckMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFO1lBQ25CLFlBQVksSUFBSSxlQUFlLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUNoRDtRQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDMUIsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2YsQ0FBQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBckJELDhCQXFCQyIsImZpbGUiOiJoZWxwLmpzIiwic291cmNlUm9vdCI6Ii4uXFxzcmMifQ==
|
package/lib/index.d.ts
CHANGED