nole 3.0.0 → 3.2.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/LICENSE.md +21 -0
- package/README.md +514 -294
- package/bin/nole.js +145 -110
- package/dist/cjs/const.js +45 -0
- package/dist/cjs/core.js +61 -0
- package/dist/cjs/dynamic.js +56 -0
- package/dist/cjs/handle/after-each-hooks.js +29 -0
- package/dist/cjs/handle/after-hooks.js +27 -0
- package/dist/cjs/handle/before-each-hooks.js +29 -0
- package/dist/cjs/handle/before-hooks.js +37 -0
- package/dist/cjs/handle/cleanup-hooks.js +37 -0
- package/dist/cjs/handle/specs.js +52 -0
- package/dist/cjs/index.js +14 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/run.js +216 -0
- package/dist/cjs/symbol.js +6 -0
- package/dist/cjs/test-wrap.js +33 -0
- package/dist/cjs/utils/executor.js +23 -0
- package/dist/cjs/utils/time_difference.js +26 -0
- package/dist/cjs/utils/time_factor.js +31 -0
- package/dist/core.d.ts +3 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +2 -2
- package/dist/dynamic.d.ts +2 -0
- package/dist/dynamic.d.ts.map +1 -1
- package/dist/dynamic.js +16 -1
- package/dist/handle/before-hooks.d.ts.map +1 -1
- package/dist/handle/before-hooks.js +12 -2
- package/dist/handle/specs.d.ts.map +1 -1
- package/dist/handle/specs.js +12 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +16 -7
- package/dist/symbol.d.ts +1 -0
- package/dist/symbol.d.ts.map +1 -1
- package/dist/symbol.js +3 -2
- package/dist/test-wrap.d.ts +1 -0
- package/dist/test-wrap.d.ts.map +1 -1
- package/dist/test-wrap.js +1 -1
- package/dist/utils/time_difference.d.ts.map +1 -1
- package/package.json +68 -57
- package/dist/utils/executor.test.d.ts +0 -8
- package/dist/utils/executor.test.d.ts.map +0 -1
- package/dist/utils/executor.test.js +0 -22
- package/dist/utils/time_difference.test.d.ts +0 -6
- package/dist/utils/time_difference.test.d.ts.map +0 -1
- package/dist/utils/time_difference.test.js +0 -11
- package/dist/utils/time_factor.test.d.ts +0 -6
- package/dist/utils/time_factor.test.d.ts.map +0 -1
- package/dist/utils/time_factor.test.js +0 -27
- package/src/const.ts +0 -11
- package/src/core.ts +0 -89
- package/src/dynamic.ts +0 -53
- package/src/handle/after-each-hooks.ts +0 -41
- package/src/handle/after-hooks.ts +0 -38
- package/src/handle/before-each-hooks.ts +0 -40
- package/src/handle/before-hooks.ts +0 -39
- package/src/handle/cleanup-hooks.ts +0 -55
- package/src/handle/specs.ts +0 -68
- package/src/index.ts +0 -3
- package/src/run.ts +0 -259
- package/src/symbol.ts +0 -1
- package/src/test-wrap.ts +0 -48
- package/src/utils/executor.test.ts +0 -24
- package/src/utils/executor.ts +0 -22
- package/src/utils/time_difference.test.ts +0 -11
- package/src/utils/time_difference.ts +0 -26
- package/src/utils/time_factor.test.ts +0 -28
- package/src/utils/time_factor.ts +0 -33
- package/test/basic.test.ts +0 -23
- package/test/before.test.ts +0 -41
- package/test/clean-up.test.ts +0 -48
- package/test/dynamic-skip.test.ts +0 -6
- package/test/dynamic.test.ts +0 -28
- package/test/extend.test.ts +0 -43
- package/test/hook.test.ts +0 -26
- package/test/multi-dependency.test.ts +0 -43
- package/test/multiple-uppercased-chars.test.ts +0 -20
- package/test/skip-all.test.ts +0 -10
- package/test/tsconfig.json +0 -24
- package/test/turkish-chars.test.ts +0 -20
- package/tsconfig.json +0 -16
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.handleSpecs = handleSpecs;
|
|
4
|
+
const executor_js_1 = require("../utils/executor.js");
|
|
5
|
+
const time_difference_js_1 = require("../utils/time_difference.js");
|
|
6
|
+
const time_factor_js_1 = require("../utils/time_factor.js");
|
|
7
|
+
const after_each_hooks_js_1 = require("./after-each-hooks.js");
|
|
8
|
+
const before_each_hooks_js_1 = require("./before-each-hooks.js");
|
|
9
|
+
const const_js_1 = require("../const.js");
|
|
10
|
+
async function handleSpecs(test) {
|
|
11
|
+
const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
|
|
12
|
+
for (let [propertyKey, spec] of test.specs.entries()) {
|
|
13
|
+
let testName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name + "." + propertyKey));
|
|
14
|
+
const shouldPropertySkip = test.skip.has(propertyKey);
|
|
15
|
+
if (shouldPropertySkip || test.skipClass) {
|
|
16
|
+
let reason = shouldPropertySkip
|
|
17
|
+
? test.skip.get(propertyKey).reason
|
|
18
|
+
: test.skipClass.reason;
|
|
19
|
+
const hasOrigin = !!test.skipClass?.origin;
|
|
20
|
+
const TEXT = hasOrigin ? const_js_1.DYNAMIC_SKIP_TEXT : const_js_1.SKIP_TEXT;
|
|
21
|
+
console.log(`${TEXT} ${" ".repeat(hasOrigin ? 8 : 9)} ${testName}() ${reason ? "{" + reason + "}" : ""}${hasOrigin ? `\n${" ".repeat(22)}↳ skip came from ${test.skipClass?.origin}` : ``}`);
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
await (0, before_each_hooks_js_1.handleBeforeEachHooks)(test);
|
|
25
|
+
let start = time_difference_js_1.TimeDifference.begin();
|
|
26
|
+
try {
|
|
27
|
+
await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
|
|
28
|
+
let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
|
|
29
|
+
console.log(`${const_js_1.OK_TEXT} ${timeText} ${testName}()`);
|
|
30
|
+
}
|
|
31
|
+
catch (e) {
|
|
32
|
+
const anchor = e?._nole_anchor;
|
|
33
|
+
if (anchor === 1) {
|
|
34
|
+
let reason = e.reason;
|
|
35
|
+
console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
else if (anchor === 2) {
|
|
39
|
+
let reason = e.reason;
|
|
40
|
+
test.skipClass = { reason, origin: "." + propertyKey };
|
|
41
|
+
console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
|
|
45
|
+
console.error(`${const_js_1.FAILED_TEXT} ${timeText} ${testName}()`);
|
|
46
|
+
console.error(e?.stack ?? e);
|
|
47
|
+
throw e;
|
|
48
|
+
}
|
|
49
|
+
await (0, after_each_hooks_js_1.handleAfterEachHooks)(test);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlL3NwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUFnRDtBQUNoRCxvRUFBNkQ7QUFDN0QsNERBQXFEO0FBQ3JELCtEQUE2RDtBQUM3RCxpRUFBK0Q7QUFDL0QsMENBT3FCO0FBRWQsS0FBSyxzQkFBc0IsSUFBYztJQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSwwQkFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsaUJBQU0sQ0FBQyxJQUFJLENBQUMsaUJBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV6RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLGtCQUFrQjtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxDQUFDLE1BQU07Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLE1BQU0sQ0FBQztZQUUzQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyw0QkFBaUIsQ0FBQyxDQUFDLENBQUMsb0JBQVMsQ0FBQztZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcs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
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isSkipped = exports.addTest = exports.getTest = exports.skipClass = exports.skipTest = exports.Test = exports.HookType = void 0;
|
|
4
|
+
var test_wrap_js_1 = require("./test-wrap.js");
|
|
5
|
+
Object.defineProperty(exports, "HookType", { enumerable: true, get: function () { return test_wrap_js_1.HookType; } });
|
|
6
|
+
var core_js_1 = require("./core.js");
|
|
7
|
+
Object.defineProperty(exports, "Test", { enumerable: true, get: function () { return core_js_1.Test; } });
|
|
8
|
+
var dynamic_js_1 = require("./dynamic.js");
|
|
9
|
+
Object.defineProperty(exports, "skipTest", { enumerable: true, get: function () { return dynamic_js_1.skipTest; } });
|
|
10
|
+
Object.defineProperty(exports, "skipClass", { enumerable: true, get: function () { return dynamic_js_1.skipClass; } });
|
|
11
|
+
Object.defineProperty(exports, "getTest", { enumerable: true, get: function () { return dynamic_js_1.getTest; } });
|
|
12
|
+
Object.defineProperty(exports, "addTest", { enumerable: true, get: function () { return dynamic_js_1.addTest; } });
|
|
13
|
+
Object.defineProperty(exports, "isSkipped", { enumerable: true, get: function () { return dynamic_js_1.isSkipped; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTBDO0FBQWpDLHdHQUFBLFFBQVEsT0FBQTtBQUNqQixxQ0FBaUM7QUFBeEIsK0ZBQUEsSUFBSSxPQUFBO0FBQ2IsMkNBQWdGO0FBQXZFLHNHQUFBLFFBQVEsT0FBQTtBQUFFLHVHQUFBLFNBQVMsT0FBQTtBQUFFLHFHQUFBLE9BQU8sT0FBQTtBQUFFLHFHQUFBLE9BQU8sT0FBQTtBQUFFLHVHQUFBLFNBQVMsT0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
package/dist/cjs/run.js
ADDED
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ManualRun = ManualRun;
|
|
4
|
+
exports.updateInformationForClass = updateInformationForClass;
|
|
5
|
+
exports.createInstanceIfNotExists = createInstanceIfNotExists;
|
|
6
|
+
exports.getTestMap = getTestMap;
|
|
7
|
+
exports.getFutureTestMap = getFutureTestMap;
|
|
8
|
+
const test_wrap_js_1 = require("./test-wrap.js");
|
|
9
|
+
const symbol_js_1 = require("./symbol.js");
|
|
10
|
+
const before_hooks_js_1 = require("./handle/before-hooks.js");
|
|
11
|
+
const specs_js_1 = require("./handle/specs.js");
|
|
12
|
+
const after_hooks_js_1 = require("./handle/after-hooks.js");
|
|
13
|
+
const cleanup_hooks_js_1 = require("./handle/cleanup-hooks.js");
|
|
14
|
+
const const_js_1 = require("./const.js");
|
|
15
|
+
let allTests = new Map();
|
|
16
|
+
let notTestedYet = new Map();
|
|
17
|
+
async function ManualRun(originalTests) {
|
|
18
|
+
for (let test of originalTests) {
|
|
19
|
+
if (allTests.has(test)) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const wrap = new test_wrap_js_1.TestWrap(test);
|
|
23
|
+
allTests.set(test, wrap);
|
|
24
|
+
notTestedYet.set(test, wrap);
|
|
25
|
+
}
|
|
26
|
+
extractInformationFromClasses(notTestedYet);
|
|
27
|
+
if (!notTestedYet.size) {
|
|
28
|
+
throw new Error("No specs found");
|
|
29
|
+
}
|
|
30
|
+
while (notTestedYet.size) {
|
|
31
|
+
let entry = pickNext(notTestedYet);
|
|
32
|
+
if (entry) {
|
|
33
|
+
let test = entry[1];
|
|
34
|
+
// console.log(colors.bold(colors.cyan(`Running test: ${test.name}`)));
|
|
35
|
+
notTestedYet.delete(test.target);
|
|
36
|
+
createInstanceIfNotExists(test);
|
|
37
|
+
handleDependencies(test);
|
|
38
|
+
await (0, before_hooks_js_1.handleBeforeHooks)(test);
|
|
39
|
+
await (0, specs_js_1.handleSpecs)(test);
|
|
40
|
+
await (0, after_hooks_js_1.handleAfterHooks)(test);
|
|
41
|
+
test.isFinished = true;
|
|
42
|
+
if (test.dependents.length == 0) {
|
|
43
|
+
await (0, cleanup_hooks_js_1.handleCleanUp)(test);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
dependencyLock(notTestedYet);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function extractInformationFromClasses(tests) {
|
|
52
|
+
for (let [target, test] of tests.entries()) {
|
|
53
|
+
updateInformationForClass(target, test, tests);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function updateInformationForClass(target, test, tests) {
|
|
57
|
+
const config = target[symbol_js_1.TEST_CLASS_KEY];
|
|
58
|
+
if (config.skip) {
|
|
59
|
+
test.skipClass = { reason: config.skip };
|
|
60
|
+
}
|
|
61
|
+
test.dependencies = config.dependencies
|
|
62
|
+
? Array.from(config.dependencies.entries()).map(([key, dep]) => {
|
|
63
|
+
const actual = dep();
|
|
64
|
+
let testWrap = tests.get(actual);
|
|
65
|
+
if (!testWrap) {
|
|
66
|
+
testWrap = new test_wrap_js_1.TestWrap(actual);
|
|
67
|
+
tests.set(actual, testWrap);
|
|
68
|
+
allTests.set(actual, testWrap);
|
|
69
|
+
}
|
|
70
|
+
testWrap.dependents.push(test);
|
|
71
|
+
return {
|
|
72
|
+
propertyKey: key,
|
|
73
|
+
dependency: testWrap,
|
|
74
|
+
};
|
|
75
|
+
})
|
|
76
|
+
: [];
|
|
77
|
+
if (config.before) {
|
|
78
|
+
const beforeTests = config.before();
|
|
79
|
+
for (let i = 0; i < beforeTests.length; i++) {
|
|
80
|
+
const actual = beforeTests[i];
|
|
81
|
+
let testWrap = tests.get(actual);
|
|
82
|
+
if (!testWrap) {
|
|
83
|
+
testWrap = new test_wrap_js_1.TestWrap(actual);
|
|
84
|
+
tests.set(actual, testWrap);
|
|
85
|
+
allTests.set(actual, testWrap);
|
|
86
|
+
}
|
|
87
|
+
testWrap.dependencies.push({
|
|
88
|
+
propertyKey: "_before_" + i,
|
|
89
|
+
dependency: test,
|
|
90
|
+
});
|
|
91
|
+
test.dependents.push(testWrap);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (config.after) {
|
|
95
|
+
const afterTests = config.after();
|
|
96
|
+
for (let i = 0; i < afterTests.length; i++) {
|
|
97
|
+
const actual = afterTests[i];
|
|
98
|
+
let testWrap = tests.get(actual);
|
|
99
|
+
if (!testWrap) {
|
|
100
|
+
testWrap = new test_wrap_js_1.TestWrap(actual);
|
|
101
|
+
tests.set(actual, testWrap);
|
|
102
|
+
allTests.set(actual, testWrap);
|
|
103
|
+
}
|
|
104
|
+
test.dependencies.push({
|
|
105
|
+
propertyKey: "_after_" + i,
|
|
106
|
+
dependency: testWrap,
|
|
107
|
+
});
|
|
108
|
+
testWrap.dependents.push(test);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function pickNext(tests) {
|
|
113
|
+
for (let entry of tests.entries()) {
|
|
114
|
+
let test = entry[1];
|
|
115
|
+
if (test.isFinished)
|
|
116
|
+
continue;
|
|
117
|
+
if (!test.dependencies.every((x) => x.dependency.isFinished))
|
|
118
|
+
continue;
|
|
119
|
+
return entry;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
function createInstanceIfNotExists(test) {
|
|
123
|
+
if (!test.testInstance) {
|
|
124
|
+
const instance = new test.target();
|
|
125
|
+
instance[symbol_js_1.TEST_INSTANCE_INFO] = test;
|
|
126
|
+
test.testInstance = instance;
|
|
127
|
+
}
|
|
128
|
+
if (!test.specDetection) {
|
|
129
|
+
specDetection(test);
|
|
130
|
+
test.specDetection = true;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
function specDetection(test) {
|
|
134
|
+
const instance = test.testInstance;
|
|
135
|
+
for (let key of getAllMethods(instance)) {
|
|
136
|
+
if (typeof key !== "string") {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
if (key.startsWith(process.env.SPEC_SKIP_PREFIX ?? "_")) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
let lowerKey = key.toLowerCase();
|
|
143
|
+
if (lowerKey.startsWith("skip")) {
|
|
144
|
+
test.skip.set(key, { reason: "marked as skipped" });
|
|
145
|
+
}
|
|
146
|
+
if (lowerKey.startsWith("hook") ||
|
|
147
|
+
lowerKey === "cleanup" ||
|
|
148
|
+
lowerKey === "before" ||
|
|
149
|
+
lowerKey === "after" ||
|
|
150
|
+
lowerKey === "beforeeach" ||
|
|
151
|
+
lowerKey === "aftereach") {
|
|
152
|
+
let type = test_wrap_js_1.HookType.Before;
|
|
153
|
+
if (lowerKey.endsWith("before")) {
|
|
154
|
+
type = test_wrap_js_1.HookType.Before;
|
|
155
|
+
}
|
|
156
|
+
else if (lowerKey.endsWith("after")) {
|
|
157
|
+
type = test_wrap_js_1.HookType.After;
|
|
158
|
+
}
|
|
159
|
+
else if (lowerKey.endsWith("beforeeach")) {
|
|
160
|
+
type = test_wrap_js_1.HookType.BeforeEach;
|
|
161
|
+
}
|
|
162
|
+
else if (lowerKey.endsWith("aftereach")) {
|
|
163
|
+
type = test_wrap_js_1.HookType.AfterEach;
|
|
164
|
+
}
|
|
165
|
+
else if (lowerKey.endsWith("cleanup")) {
|
|
166
|
+
type = test_wrap_js_1.HookType.CleanUp;
|
|
167
|
+
}
|
|
168
|
+
test.hooks.set(key, { type });
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
test.specs.set(key, {});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
function getAllMethods(instance) {
|
|
175
|
+
let props = new Set();
|
|
176
|
+
let currentObj = instance;
|
|
177
|
+
let stack = [];
|
|
178
|
+
while (currentObj && currentObj !== Object.prototype) {
|
|
179
|
+
stack.push(currentObj);
|
|
180
|
+
currentObj = Object.getPrototypeOf(currentObj);
|
|
181
|
+
}
|
|
182
|
+
while (stack.length > 0) {
|
|
183
|
+
let obj = stack.pop(); // En üstteki (A.prototype) ilk çıkar
|
|
184
|
+
Object.getOwnPropertyNames(obj).forEach((prop) => {
|
|
185
|
+
if (typeof obj[prop] === "function" && prop !== "constructor") {
|
|
186
|
+
props.add(prop);
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
return Array.from(props);
|
|
191
|
+
}
|
|
192
|
+
function handleDependencies(test) {
|
|
193
|
+
for (let dependency of test.dependencies) {
|
|
194
|
+
test.testInstance[dependency.propertyKey] =
|
|
195
|
+
dependency.dependency.testInstance;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
function dependencyLock(tests) {
|
|
199
|
+
console.error(const_js_1.FAILED_TEXT +
|
|
200
|
+
const_js_1.colors.red("Looks like there is confict issue for dependency resolving!"));
|
|
201
|
+
console.error("Possible conflicts;");
|
|
202
|
+
for (let [, test] of tests) {
|
|
203
|
+
console.error(`- class ${test.name} { ${test.dependencies
|
|
204
|
+
.filter((x) => !x.dependency.isFinished)
|
|
205
|
+
.map((x) => `@Dependency(${x.dependency.name}) ${x.propertyKey}`)
|
|
206
|
+
.join(", ")} }`);
|
|
207
|
+
}
|
|
208
|
+
throw new Error("Dependency lock occurred!");
|
|
209
|
+
}
|
|
210
|
+
function getTestMap() {
|
|
211
|
+
return allTests;
|
|
212
|
+
}
|
|
213
|
+
function getFutureTestMap() {
|
|
214
|
+
return notTestedYet;
|
|
215
|
+
}
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsaURBQW9EO0FBRXBELDJDQUFpRTtBQUNqRSw4REFBNkQ7QUFDN0QsZ0RBQWdEO0FBQ2hELDREQUEyRDtBQUMzRCxnRUFBMEQ7QUFDMUQseUNBQWlEO0FBRWpELElBQUksUUFBUSxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBQzVELElBQUksWUFBWSxHQUFzQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0FBRXpELEtBQUssb0JBQW9CLGFBQXNDO0lBQ3BFLEtBQUssSUFBSSxJQUFJLElBQUksYUFBYSxFQUFFLENBQUM7UUFDL0IsSUFBSSxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDdkIsU0FBUztRQUNYLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLHVCQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFbkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQix1RUFBdUU7WUFFdkUsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJ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
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TEST_INSTANCE_INFO = exports.TEST_CLASS_KEY = void 0;
|
|
4
|
+
exports.TEST_CLASS_KEY = Symbol.for("nole.TEST_CLASS_KEY");
|
|
5
|
+
exports.TEST_INSTANCE_INFO = Symbol.for("nole.TEST_INSTANCE_INFO");
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBYSxRQUFBLGNBQWMsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDbkQsUUFBQSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUMifQ==
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HookType = exports.TestWrap = void 0;
|
|
4
|
+
const symbol_js_1 = require("./symbol.js");
|
|
5
|
+
// Old code, but works fine, so I won't change it for now
|
|
6
|
+
class TestWrap {
|
|
7
|
+
constructor(target) {
|
|
8
|
+
this.target = target;
|
|
9
|
+
this.dependencies = [];
|
|
10
|
+
this.dependents = [];
|
|
11
|
+
this.skip = new Map();
|
|
12
|
+
this.skipClass = null;
|
|
13
|
+
this.specs = new Map();
|
|
14
|
+
this.hooks = new Map();
|
|
15
|
+
this.isFinished = false; // cleanup ignored
|
|
16
|
+
this.cleanUpCalled = false;
|
|
17
|
+
this.specDetection = false;
|
|
18
|
+
this.config = target[symbol_js_1.TEST_CLASS_KEY];
|
|
19
|
+
}
|
|
20
|
+
get name() {
|
|
21
|
+
return this.target.name;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
exports.TestWrap = TestWrap;
|
|
25
|
+
var HookType;
|
|
26
|
+
(function (HookType) {
|
|
27
|
+
HookType[HookType["Before"] = 0] = "Before";
|
|
28
|
+
HookType[HookType["After"] = 1] = "After";
|
|
29
|
+
HookType[HookType["BeforeEach"] = 2] = "BeforeEach";
|
|
30
|
+
HookType[HookType["AfterEach"] = 3] = "AfterEach";
|
|
31
|
+
HookType[HookType["CleanUp"] = 4] = "CleanUp";
|
|
32
|
+
})(HookType || (exports.HookType = HookType = {}));
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3Qtd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwyQ0FBNkM7QUFrQjdDLHlEQUF5RDtBQUN6RDtJQWFFLFlBQW1CLE1BQTBCO1FBQTFCLFdBQU0sR0FBTixNQUFNLENBQW9CO1FBWjdDLGlCQUFZLEdBQWtCLEVBQUUsQ0FBQztRQUNqQyxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBQzVCLFNBQUksR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUNoQyxjQUFTLEdBQWlCLElBQUksQ0FBQztRQUMvQixVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDakMsVUFBSyxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2pDLGVBQVUsR0FBWSxLQUFLLENBQUMsQ0FBQyxrQkFBa0I7UUFDL0Msa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFFL0Isa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFJN0IsSUFBSSxDQUFDLE1BQU0sR0FBSSxNQUEwQixDQUFDLDBCQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0Y7O0FBRUQsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDJDQUFNLENBQUE7SUFDTix5Q0FBSyxDQUFBO0lBQ0wsbURBQVUsQ0FBQTtJQUNWLGlEQUFTLENBQUE7SUFDVCw2Q0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQU5XLFFBQVEsYUFBUixRQUFRLEdBQVIsUUFBUSxRQU1uQiJ9
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Executor = Executor;
|
|
4
|
+
function Executor(fn, timeout) {
|
|
5
|
+
return new Promise(async (resolve, reject) => {
|
|
6
|
+
let _timeout = null;
|
|
7
|
+
try {
|
|
8
|
+
let expectPromise = fn();
|
|
9
|
+
if (expectPromise && expectPromise.then) {
|
|
10
|
+
_timeout = setTimeout(function () {
|
|
11
|
+
reject(new Error("Timeout occurred! value: " + timeout));
|
|
12
|
+
}, timeout);
|
|
13
|
+
await expectPromise;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
catch (e) {
|
|
17
|
+
reject(e);
|
|
18
|
+
}
|
|
19
|
+
clearTimeout(_timeout);
|
|
20
|
+
resolve();
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0JBQXlCLEVBQVksRUFBRSxPQUFlO0lBQ3BELE9BQU8sSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtRQUMzQyxJQUFJLFFBQVEsR0FBMEIsSUFBSSxDQUFDO1FBRTNDLElBQUksQ0FBQztZQUNILElBQUksYUFBYSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ3pCLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDeEMsUUFBUSxHQUFHLFVBQVUsQ0FBQztvQkFDcEIsTUFBTSxDQUFDLElBQUksS0FBSyxDQUFDLDJCQUEyQixHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQzNELENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFWixNQUFNLGFBQWEsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDWixDQUFDO1FBRUQsWUFBWSxDQUFDLFFBQVMsQ0FBQyxDQUFDO1FBRXhCLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDIn0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeDifference = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Calculates the time difference in nanoseconds
|
|
6
|
+
*/
|
|
7
|
+
class TimeDifference {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.startAt = process.hrtime();
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates the instance at the begining
|
|
13
|
+
*/
|
|
14
|
+
static begin() {
|
|
15
|
+
return new TimeDifference();
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Finishes the time, returns data in milliseconds
|
|
19
|
+
*/
|
|
20
|
+
end() {
|
|
21
|
+
let diff = process.hrtime(this.startAt);
|
|
22
|
+
return diff[0] * 1000 + diff[1] / 1e6;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.TimeDifference = TimeDifference;
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9kaWZmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL3RpbWVfZGlmZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQTs7R0FFRztBQUNIO0lBR0U7UUFDRSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsS0FBSztRQUNqQixPQUFPLElBQUksY0FBYyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsR0FBRztRQUNELElBQUksSUFBSSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQ3hDLENBQUM7Q0FDRiJ9
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TimeFactor = TimeFactor;
|
|
4
|
+
exports.TimeResolve = TimeResolve;
|
|
5
|
+
exports.Delay = Delay;
|
|
6
|
+
const const_js_1 = require("../const.js");
|
|
7
|
+
function TimeFactor(diff, timeout) {
|
|
8
|
+
if (diff < timeout / 5) {
|
|
9
|
+
return const_js_1.colors.green(TimeResolve(diff).padStart(9, " "));
|
|
10
|
+
}
|
|
11
|
+
if (diff < timeout / 2) {
|
|
12
|
+
return const_js_1.colors.yellow(TimeResolve(diff).padStart(9, " "));
|
|
13
|
+
}
|
|
14
|
+
return const_js_1.colors.red(TimeResolve(diff).padStart(9, " "));
|
|
15
|
+
}
|
|
16
|
+
function TimeResolve(ms) {
|
|
17
|
+
if (ms < 1000) {
|
|
18
|
+
return ((ms * 100) | 0) / 100 + " ms";
|
|
19
|
+
}
|
|
20
|
+
if (ms < 60 * 1000) {
|
|
21
|
+
return ((ms / 10) | 0) / 100 + " s";
|
|
22
|
+
}
|
|
23
|
+
if (ms < 60 * 60 * 1000) {
|
|
24
|
+
return ((ms / 600) | 0) / 100 + " m";
|
|
25
|
+
}
|
|
26
|
+
return ((ms / 36000) | 0) / 100 + " h";
|
|
27
|
+
}
|
|
28
|
+
function Delay(ms) {
|
|
29
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9mYWN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvdGltZV9mYWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwQ0FBcUM7QUFFckMsb0JBQTJCLElBQVksRUFBRSxPQUFlO0lBQ3RELElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLGlCQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksSUFBSSxHQUFHLE9BQU8sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUN2QixPQUFPLGlCQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELE9BQU8saUJBQU0sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBRUQscUJBQTRCLEVBQVU7SUFDcEMsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDZCxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksRUFBRSxDQUFDO1FBQ3hCLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQztBQUN6QyxDQUFDO0FBRUQsZUFBc0IsRUFBVTtJQUM5QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsQ0FBQyJ9
|
package/dist/core.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { TEST_CLASS_KEY } from "./symbol.js";
|
|
1
|
+
import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
|
|
2
|
+
import type { TestWrap } from "./test-wrap.js";
|
|
2
3
|
export interface TestClassInfo {
|
|
3
4
|
dependencies?: Map<string, () => new () => BaseTest>;
|
|
4
5
|
skip?: string;
|
|
@@ -7,6 +8,7 @@ export interface TestClassInfo {
|
|
|
7
8
|
timeout?: number;
|
|
8
9
|
}
|
|
9
10
|
export declare class BaseTest {
|
|
11
|
+
[TEST_INSTANCE_INFO]: TestWrap;
|
|
10
12
|
static [TEST_CLASS_KEY]: TestClassInfo;
|
|
11
13
|
}
|
|
12
14
|
type DependencyDefinitionRule<T extends BaseTest> = () => new () => T;
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,UAAU,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,QAAQ;IACnB,CAAC,kBAAkB,CAAC,EAAG,QAAQ,CAAC;IAEhC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE,aAAa,CAGpC;CACH;AAED,KAAK,wBAAwB,CAAC,CAAC,SAAS,QAAQ,IAAI,MAAM,UAAU,CAAC,CAAC;AACtE,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAExE,wBAAgB,IAAI,CAClB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAC/D,EACA,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,OAAO,GACR,GAAE;IACD,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,KAAK,CAAC,UAAU,QAAQ,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GAqDY,UAAU,GAnDvB,CAAC,uEAmD8B,QAAQ,CAC3C"}
|
package/dist/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var _a;
|
|
2
|
-
import { TEST_CLASS_KEY } from "./symbol.js";
|
|
2
|
+
import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
|
|
3
3
|
export class BaseTest {
|
|
4
4
|
}
|
|
5
5
|
_a = TEST_CLASS_KEY;
|
|
@@ -53,4 +53,4 @@ export function Test({ dependencies, skip, before, after, timeout, } = {}) {
|
|
|
53
53
|
_b[_d] = wrap(Reflect.get(_c, TEST_CLASS_KEY, _b)),
|
|
54
54
|
_b;
|
|
55
55
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBV2pFLE1BQU0sT0FBTyxRQUFRO0NBT3BCO0tBSlMsY0FBYztBQUFmLFlBQWdCLEdBQWtCO0lBQ3ZDLFlBQVksRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUN2QixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFNSixNQUFNLFVBQVUsSUFBSSxDQUVsQixFQUNBLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEdBQ1IsR0FNRyxFQUFFOztJQUtKLFNBQVMsSUFBSSxDQUFDLGNBQTZCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLElBQUksY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQVEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxLQUFBLEtBQU0sU0FBUSxNQUFBLFFBQVEsQ0FBQTtZQUczQjtnQkFDRSxLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUM7U0FDRjthQUxTLGNBQWM7UUFBZixNQUFnQixHQUFrQixJQUFJLENBQUMsZ0JBQU0sY0FBYyxLQUFmLENBQWtCO1VBSzdCLENBQUM7QUFDN0MsQ0FBQyJ9
|
package/dist/dynamic.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { BaseTest } from "./core.js";
|
|
2
2
|
export declare function skipTest(reason?: string): never;
|
|
3
|
+
export declare function skipClass(reason?: string): never;
|
|
4
|
+
export declare function isSkipped(instance: BaseTest): boolean;
|
|
3
5
|
export declare function getTest<T extends BaseTest>(test: () => new () => T): Partial<T> | null;
|
|
4
6
|
export declare function addTest<T extends BaseTest>(test: () => new () => T): boolean;
|
|
5
7
|
//# sourceMappingURL=dynamic.d.ts.map
|
package/dist/dynamic.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAUrC,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAE/C;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,QAAQ,WAI3C;AAkBD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxC,IAAI,EAAE,MAAM,UAAU,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAUnB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,WAiBlE"}
|
package/dist/dynamic.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { BaseTest } from "./core.js";
|
|
2
2
|
import { createInstanceIfNotExists, getFutureTestMap, getTestMap, updateInformationForClass, } from "./run.js";
|
|
3
|
+
import { TEST_CLASS_KEY, TEST_INSTANCE_INFO } from "./symbol.js";
|
|
3
4
|
import { TestWrap } from "./test-wrap.js";
|
|
4
5
|
export function skipTest(reason) {
|
|
5
6
|
throw new NoleManualSkip(reason);
|
|
6
7
|
}
|
|
8
|
+
export function skipClass(reason) {
|
|
9
|
+
throw new NoleManualClassSkip(reason);
|
|
10
|
+
}
|
|
11
|
+
export function isSkipped(instance) {
|
|
12
|
+
const info = instance[TEST_INSTANCE_INFO];
|
|
13
|
+
return !!info?.skip;
|
|
14
|
+
}
|
|
7
15
|
class NoleManualSkip extends Error {
|
|
8
16
|
constructor(reason) {
|
|
9
17
|
super(`Dynamicly skipped! ${reason}`);
|
|
@@ -11,6 +19,13 @@ class NoleManualSkip extends Error {
|
|
|
11
19
|
this._nole_anchor = 1;
|
|
12
20
|
}
|
|
13
21
|
}
|
|
22
|
+
class NoleManualClassSkip extends Error {
|
|
23
|
+
constructor(reason) {
|
|
24
|
+
super(`Dynamicly skipped! ${reason}`);
|
|
25
|
+
this.reason = reason;
|
|
26
|
+
this._nole_anchor = 2;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
14
29
|
export function getTest(test) {
|
|
15
30
|
const testWrap = getTestMap().get(test());
|
|
16
31
|
if (!testWrap) {
|
|
@@ -32,4 +47,4 @@ export function addTest(test) {
|
|
|
32
47
|
updateInformationForClass(testClass, testWrap, testMap);
|
|
33
48
|
return true;
|
|
34
49
|
}
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixHQUMxQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxQyxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWU7SUFDdEMsTUFBTSxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNuQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxNQUFlO0lBQ3ZDLE1BQU0sSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFrQjtJQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUUxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBR2hDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBb0IsU0FBUSxLQUFLO0lBR3JDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FDckIsSUFBdUI7SUFFdkIsTUFBTSxRQUFRLEdBQUcsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBUyxDQUF5QixDQUFDO0lBRXpFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHlCQUF5QixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXBDLE9BQU8sUUFBUSxDQUFDLFlBQVksQ0FBQztBQUMvQixDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBcUIsSUFBdUI7SUFDakUsTUFBTSxPQUFPLEdBQUcsVUFBVSxFQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsZ0JBQWdCLEVBQUUsQ0FBQztJQUUxQyxNQUFNLFNBQVMsR0FBRyxJQUFJLEVBQUUsQ0FBQztJQUV6QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztRQUMzQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqQyx5QkFBeUIsQ0FBQyxTQUFTLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXhELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWrD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,iBA4CrD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { HookType, TestWrap } from "../test-wrap.js";
|
|
2
2
|
import { Executor } from "../utils/executor.js";
|
|
3
3
|
import { TimeFactor } from "../utils/time_factor.js";
|
|
4
|
-
import { colors, DEFAULT_TIMEOUT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
|
|
4
|
+
import { colors, DEFAULT_TIMEOUT, DYNAMIC_SKIP_TEXT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
|
|
5
5
|
export async function handleBeforeHooks(test) {
|
|
6
6
|
const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
|
|
7
7
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
@@ -15,10 +15,20 @@ export async function handleBeforeHooks(test) {
|
|
|
15
15
|
console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
|
|
16
16
|
}
|
|
17
17
|
catch (e) {
|
|
18
|
+
const anchor = e?._nole_anchor;
|
|
19
|
+
if (anchor === 1) {
|
|
20
|
+
throw new Error("You cannot just skip the before hook! Probably you ment to skip the whole test class!");
|
|
21
|
+
}
|
|
22
|
+
else if (anchor === 2) {
|
|
23
|
+
let reason = e.reason;
|
|
24
|
+
test.skipClass = { reason, origin: ":" + propertyKey };
|
|
25
|
+
console.log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${hookName}() ${reason ? "{" + reason + "}" : ""}`);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
18
28
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
19
29
|
console.error(e?.stack ?? e);
|
|
20
30
|
throw e;
|
|
21
31
|
}
|
|
22
32
|
}
|
|
23
33
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBYztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7SUFFdkQsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU07WUFBRSxTQUFTO1FBRTNDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLElBQUk7WUFDUCxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNuRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsQ0FDWixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3RELE9BQU8sQ0FDUixDQUFDO1lBRUYsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEdBQUksQ0FBUyxFQUFFLFlBQVksQ0FBQztZQUN4QyxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxHQUFJLENBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxNQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBAiE/C"}
|