nole 1.0.11 → 2.0.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 +6 -0
- package/bin/nole.js +22 -22
- package/dist/data.d.ts +1 -1
- package/dist/data.d.ts.map +1 -1
- package/dist/data.js +1 -4
- package/dist/data.js.map +1 -1
- package/dist/decorators.d.ts +1 -1
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +9 -16
- package/dist/decorators.js.map +1 -1
- package/dist/dynamic.d.ts +2 -0
- package/dist/dynamic.d.ts.map +1 -0
- package/dist/dynamic.js +11 -0
- package/dist/dynamic.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -10
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +38 -33
- package/dist/run.js.map +1 -1
- package/dist/test.d.ts +2 -1
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +4 -6
- package/dist/test.js.map +1 -1
- package/dist/utils/executor.d.ts +1 -1
- package/dist/utils/executor.d.ts.map +1 -1
- package/dist/utils/executor.js +1 -4
- package/dist/utils/executor.js.map +1 -1
- package/dist/utils/time_difference.js +1 -4
- package/dist/utils/time_difference.js.map +1 -1
- package/dist/utils/time_factor.d.ts +1 -1
- package/dist/utils/time_factor.d.ts.map +1 -1
- package/dist/utils/time_factor.js +5 -9
- package/dist/utils/time_factor.js.map +1 -1
- package/package.json +34 -33
- package/src/data.ts +1 -1
- package/src/decorators.ts +2 -2
- package/src/dynamic.ts +11 -0
- package/src/index.ts +3 -2
- package/src/run.ts +27 -16
- package/src/test.ts +3 -1
- package/src/utils/executor.ts +1 -1
- package/src/utils/time_factor.ts +3 -1
- package/test/basic.test.ts +1 -1
- package/test/clean-up.test.ts +1 -1
- package/test/dynamic-skip.test.ts +8 -0
- package/test/dynamic.test.ts +1 -1
- package/test/hook.test.ts +1 -1
- package/test/skip-all.test.ts +2 -2
- package/test/tsconfig.json +3 -4
- package/tsconfig.json +4 -4
package/README.md
CHANGED
|
@@ -5,6 +5,10 @@ Nole
|
|
|
5
5
|
|
|
6
6
|
Nole is a testing platform just like mocha.. You can create test classes and declare specs with decorators..
|
|
7
7
|
|
|
8
|
+
> Use nole 2.x for ESM and Typescript.
|
|
9
|
+
|
|
10
|
+
> Use nole 1.x for CommonJS. (ability to disable Typescript with -T option)
|
|
11
|
+
|
|
8
12
|
```ts
|
|
9
13
|
// test/queue.test.ts
|
|
10
14
|
import { Spec } from 'nole';
|
|
@@ -258,6 +262,8 @@ We do not provide assert library. You can use chai or should.js.
|
|
|
258
262
|
|
|
259
263
|
## Compiled files
|
|
260
264
|
|
|
265
|
+
> Deprecated (v2.x+), It will always use ts-node/esm module
|
|
266
|
+
|
|
261
267
|
You can run the compiled test files with `-T` option.
|
|
262
268
|
|
|
263
269
|
```bash
|
package/bin/nole.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
1
|
+
#!/usr/bin/env node --loader=ts-node/esm
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
import program from 'commander';
|
|
4
|
+
import glob from 'glob';
|
|
5
|
+
import path from 'path';
|
|
6
|
+
import fs from 'fs';
|
|
7
|
+
import colors from 'colors/safe.js';
|
|
8
|
+
import { ManualRun } from '../dist/run.js';
|
|
9
|
+
import { TimeDifference } from '../dist/utils/time_difference.js';
|
|
10
|
+
import { TimeResolve } from '../dist/utils/time_factor.js';
|
|
11
|
+
|
|
12
|
+
const pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url)).toString())
|
|
11
13
|
|
|
12
14
|
program
|
|
13
15
|
.usage('<glob> ...')
|
|
14
|
-
.option('-T, --no-typescript', 'disable ts-node register')
|
|
15
16
|
.option('-L, --no-log', 'disable console.log')
|
|
16
|
-
.version(
|
|
17
|
+
.version(pkg.version)
|
|
17
18
|
.parse(process.argv);
|
|
18
19
|
|
|
19
20
|
|
|
@@ -23,7 +24,7 @@ if (!program.args.length) {
|
|
|
23
24
|
let time = TimeDifference.begin();
|
|
24
25
|
|
|
25
26
|
let log = console.log.bind(console);
|
|
26
|
-
|
|
27
|
+
|
|
27
28
|
if (!program.log) {
|
|
28
29
|
console.log = function () { }
|
|
29
30
|
}
|
|
@@ -36,7 +37,7 @@ if (!program.args.length) {
|
|
|
36
37
|
|
|
37
38
|
resolve(matches);
|
|
38
39
|
})
|
|
39
|
-
}))).then(list => {
|
|
40
|
+
}))).then(async list => {
|
|
40
41
|
let fileList = [];
|
|
41
42
|
|
|
42
43
|
for (let item of list) {
|
|
@@ -50,25 +51,24 @@ if (!program.args.length) {
|
|
|
50
51
|
|
|
51
52
|
let file = time.end();
|
|
52
53
|
|
|
53
|
-
if (program.typescript) {
|
|
54
|
-
require('ts-node').register();
|
|
55
|
-
}
|
|
56
|
-
|
|
57
54
|
for (let file of fileList) {
|
|
58
|
-
|
|
55
|
+
await import(`file://${file}`);
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
let prop = time.end();
|
|
62
59
|
|
|
63
|
-
log('Nole tests v' +
|
|
64
|
-
|
|
60
|
+
log('Nole tests v' + pkg.version);
|
|
61
|
+
try {
|
|
62
|
+
await ManualRun(log);
|
|
63
|
+
|
|
65
64
|
log(' discover: %s', TimeResolve(file))
|
|
66
65
|
log(' resolve: %s', TimeResolve(prop - file))
|
|
67
66
|
log(' tests: %s', TimeResolve(time.end() - prop))
|
|
68
67
|
process.exit(0);
|
|
69
|
-
}
|
|
68
|
+
} catch(e) {
|
|
69
|
+
console.error(e);
|
|
70
70
|
process.exit(1);
|
|
71
|
-
}
|
|
71
|
+
}
|
|
72
72
|
}).catch(e => {
|
|
73
73
|
failed('Error occurred on resolving files');
|
|
74
74
|
console.error(e.stack || e);
|
package/dist/data.d.ts
CHANGED
package/dist/data.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,wBAAgB,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAQxC"}
|
package/dist/data.js
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
1
|
const KEY = '_nole_hash';
|
|
4
|
-
function HashMap() {
|
|
2
|
+
export function HashMap() {
|
|
5
3
|
let g = global || {};
|
|
6
4
|
if (g[KEY]) {
|
|
7
5
|
return g[KEY];
|
|
8
6
|
}
|
|
9
7
|
return g[KEY] = new Map();
|
|
10
8
|
}
|
|
11
|
-
exports.HashMap = HashMap;
|
|
12
9
|
//# sourceMappingURL=data.js.map
|
package/dist/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,YAAY,CAAC;AAEzB,MAAM,UAAU,OAAO;IACrB,IAAI,CAAC,GAAQ,MAAM,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;QACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACf;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAa,CAAC;AACvC,CAAC"}
|
package/dist/decorators.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HookType, ClassDefition } from "./test";
|
|
1
|
+
import { HookType, ClassDefition } from "./test.js";
|
|
2
2
|
export declare function Spec(timeout?: number): MethodDecorator;
|
|
3
3
|
export declare function Dependency<T>(dependency: ClassDefition<T>): PropertyDecorator;
|
|
4
4
|
export declare function Hook(type: HookType, timeout?: number): MethodDecorator;
|
package/dist/decorators.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1D,wBAAgB,IAAI,CAAC,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5D;AAOD,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAI7E;AAQD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5E;AAOD,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAIrD;AAMD,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAIzD"}
|
package/dist/decorators.js
CHANGED
|
@@ -1,41 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const test_1 = require("./test");
|
|
5
|
-
function Spec(timeout = 5000) {
|
|
1
|
+
import { HashMap } from "./data.js";
|
|
2
|
+
import { Test } from "./test.js";
|
|
3
|
+
export function Spec(timeout = 5000) {
|
|
6
4
|
return function (target, propertyKey) {
|
|
7
5
|
DeclareSpecForTestClass(target, propertyKey, timeout);
|
|
8
6
|
};
|
|
9
7
|
}
|
|
10
|
-
|
|
11
|
-
function Dependency(dependency) {
|
|
8
|
+
export function Dependency(dependency) {
|
|
12
9
|
return function (target, propertyKey) {
|
|
13
10
|
DeclareDependencyForTestClass(target, propertyKey, dependency);
|
|
14
11
|
};
|
|
15
12
|
}
|
|
16
|
-
|
|
17
|
-
function Hook(type, timeout = 5000) {
|
|
13
|
+
export function Hook(type, timeout = 5000) {
|
|
18
14
|
return function (target, propertyKey) {
|
|
19
15
|
DeclareHookForTestClass(target, propertyKey, type, timeout);
|
|
20
16
|
};
|
|
21
17
|
}
|
|
22
|
-
|
|
23
|
-
function Skip(reason) {
|
|
18
|
+
export function Skip(reason) {
|
|
24
19
|
return function (target, propertyKey) {
|
|
25
20
|
DeclareAsSkipped(target, propertyKey, reason ? reason : '');
|
|
26
21
|
};
|
|
27
22
|
}
|
|
28
|
-
|
|
29
|
-
function SkipClass(reason) {
|
|
23
|
+
export function SkipClass(reason) {
|
|
30
24
|
return function (target) {
|
|
31
25
|
DeclareAsSkippedClass(target, reason ? reason : '');
|
|
32
26
|
};
|
|
33
27
|
}
|
|
34
|
-
exports.SkipClass = SkipClass;
|
|
35
28
|
function GetTestInstanceOfTarget(target) {
|
|
36
|
-
let instance =
|
|
29
|
+
let instance = HashMap().get(target);
|
|
37
30
|
if (!instance) {
|
|
38
|
-
|
|
31
|
+
HashMap().set(target, instance = new Test(target));
|
|
39
32
|
}
|
|
40
33
|
return instance;
|
|
41
34
|
}
|
package/dist/decorators.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,QAEvC"}
|
package/dist/dynamic.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export function skipTest(reason) {
|
|
2
|
+
throw new NoleManualSkip(reason);
|
|
3
|
+
}
|
|
4
|
+
class NoleManualSkip extends Error {
|
|
5
|
+
constructor(reason) {
|
|
6
|
+
super(`Dynamicly skipped! ${reason}`);
|
|
7
|
+
this.reason = reason;
|
|
8
|
+
this._nole_anchor = 1;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=dynamic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,MAAe;IACtC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,cAAe,SAAQ,KAAK;IAGhC,YAAmB,MAAe;QAChC,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QADrB,WAAM,GAAN,MAAM,CAAS;QAFlC,iBAAY,GAAG,CAAC,CAAC;IAIjB,CAAC;CACF"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators';
|
|
2
|
-
export { HookType } from './test';
|
|
1
|
+
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
|
|
2
|
+
export { HookType } from './test.js';
|
|
3
|
+
export { skipTest } from './dynamic.js';
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.Dependency = decorators_1.Dependency;
|
|
5
|
-
exports.Spec = decorators_1.Spec;
|
|
6
|
-
exports.Hook = decorators_1.Hook;
|
|
7
|
-
exports.Skip = decorators_1.Skip;
|
|
8
|
-
exports.SkipClass = decorators_1.SkipClass;
|
|
9
|
-
var test_1 = require("./test");
|
|
10
|
-
exports.HookType = test_1.HookType;
|
|
1
|
+
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
|
|
2
|
+
export { HookType } from './test.js';
|
|
3
|
+
export { skipTest } from './dynamic.js';
|
|
11
4
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/run.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,iBA2CtC"}
|
package/dist/run.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const
|
|
8
|
-
const test_1 = require("./test");
|
|
1
|
+
import { HashMap } from "./data.js";
|
|
2
|
+
import { TimeDifference } from "./utils/time_difference.js";
|
|
3
|
+
import { TimeFactor } from "./utils/time_factor.js";
|
|
4
|
+
import * as clrs from 'colors/safe.js';
|
|
5
|
+
import { Executor } from "./utils/executor.js";
|
|
6
|
+
import { HookType } from "./test.js";
|
|
7
|
+
const colors = clrs.default;
|
|
9
8
|
const OK_TEXT = colors.bold(colors.green(' (ok) '));
|
|
10
9
|
const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
|
|
10
|
+
const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
|
|
11
11
|
const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
|
|
12
12
|
const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
|
|
13
|
-
function ManualRun(log) {
|
|
13
|
+
export function ManualRun(log) {
|
|
14
14
|
if (!log) {
|
|
15
15
|
log = console.log.bind(console);
|
|
16
16
|
}
|
|
17
17
|
return new Promise(async (resolve, reject) => {
|
|
18
18
|
try {
|
|
19
|
-
let hashMap = new Map(
|
|
19
|
+
let hashMap = new Map(HashMap());
|
|
20
20
|
if (!hashMap.size) {
|
|
21
21
|
log(`${FAILED_TEXT} no specs found`);
|
|
22
22
|
throw new Error('No specs found');
|
|
@@ -30,10 +30,11 @@ function ManualRun(log) {
|
|
|
30
30
|
await HandleBeforeHooks(test);
|
|
31
31
|
await HandleSpecs(test, log);
|
|
32
32
|
await HandleAfterHooks(test);
|
|
33
|
+
test.isFinished = true;
|
|
33
34
|
if (test.dependents.length == 0) {
|
|
34
35
|
await HandleCleanUp(test);
|
|
35
36
|
}
|
|
36
|
-
test.
|
|
37
|
+
test.isFullyFinished = true;
|
|
37
38
|
}
|
|
38
39
|
else {
|
|
39
40
|
DependencyLock(hashMap);
|
|
@@ -46,7 +47,6 @@ function ManualRun(log) {
|
|
|
46
47
|
}
|
|
47
48
|
});
|
|
48
49
|
}
|
|
49
|
-
exports.ManualRun = ManualRun;
|
|
50
50
|
function PickNextTestFromHashMap(hashMap) {
|
|
51
51
|
for (let test of hashMap.values()) {
|
|
52
52
|
if (test.isFinished)
|
|
@@ -68,45 +68,45 @@ function HandleDependencies(test) {
|
|
|
68
68
|
}
|
|
69
69
|
async function HandleBeforeHooks(test) {
|
|
70
70
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
71
|
-
if (hook.type !=
|
|
71
|
+
if (hook.type != HookType.Before)
|
|
72
72
|
continue;
|
|
73
73
|
try {
|
|
74
|
-
await
|
|
74
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
75
75
|
}
|
|
76
76
|
catch (e) {
|
|
77
77
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
|
|
78
78
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
79
|
-
console.error(e
|
|
79
|
+
console.error(e?.stack ?? e);
|
|
80
80
|
throw e;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
84
|
async function HandleBeforeEachHooks(test) {
|
|
85
85
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
86
|
-
if (hook.type !=
|
|
86
|
+
if (hook.type != HookType.BeforeEach)
|
|
87
87
|
continue;
|
|
88
88
|
try {
|
|
89
|
-
await
|
|
89
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
90
90
|
}
|
|
91
91
|
catch (e) {
|
|
92
92
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
|
|
93
93
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
94
|
-
console.error(e
|
|
94
|
+
console.error(e?.stack ?? e);
|
|
95
95
|
throw e;
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
async function HandleAfterEachHooks(test) {
|
|
100
100
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
101
|
-
if (hook.type !=
|
|
101
|
+
if (hook.type != HookType.AfterEach)
|
|
102
102
|
continue;
|
|
103
103
|
try {
|
|
104
|
-
await
|
|
104
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
105
105
|
}
|
|
106
106
|
catch (e) {
|
|
107
107
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
|
|
108
108
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
109
|
-
console.error(e
|
|
109
|
+
console.error(e?.stack ?? e);
|
|
110
110
|
throw e;
|
|
111
111
|
}
|
|
112
112
|
}
|
|
@@ -121,16 +121,21 @@ async function HandleSpecs(test, log) {
|
|
|
121
121
|
continue;
|
|
122
122
|
}
|
|
123
123
|
await HandleBeforeEachHooks(test);
|
|
124
|
-
let start =
|
|
124
|
+
let start = TimeDifference.begin();
|
|
125
125
|
try {
|
|
126
|
-
await
|
|
127
|
-
let timeText =
|
|
126
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
|
|
127
|
+
let timeText = TimeFactor(start.end(), spec.timeout);
|
|
128
128
|
log(`${OK_TEXT} ${timeText} ${testName}()`);
|
|
129
129
|
}
|
|
130
130
|
catch (e) {
|
|
131
|
-
|
|
131
|
+
if (e?._nole_anchor) {
|
|
132
|
+
let reason = e.reason;
|
|
133
|
+
log(`${DYNAMIC_SKIP_TEXT} ${' '.repeat(8)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
|
|
134
|
+
continue;
|
|
135
|
+
}
|
|
136
|
+
let timeText = TimeFactor(start.end(), spec.timeout);
|
|
132
137
|
console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
|
|
133
|
-
console.error(e
|
|
138
|
+
console.error(e?.stack ?? e);
|
|
134
139
|
throw e;
|
|
135
140
|
}
|
|
136
141
|
await HandleAfterEachHooks(test);
|
|
@@ -138,15 +143,15 @@ async function HandleSpecs(test, log) {
|
|
|
138
143
|
}
|
|
139
144
|
async function HandleAfterHooks(test) {
|
|
140
145
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
141
|
-
if (hook.type !=
|
|
146
|
+
if (hook.type != HookType.After)
|
|
142
147
|
continue;
|
|
143
148
|
try {
|
|
144
|
-
await
|
|
149
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
145
150
|
}
|
|
146
151
|
catch (e) {
|
|
147
152
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
|
|
148
153
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
149
|
-
console.error(e
|
|
154
|
+
console.error(e?.stack ?? e);
|
|
150
155
|
throw e;
|
|
151
156
|
}
|
|
152
157
|
}
|
|
@@ -158,20 +163,20 @@ async function HandleCleanUp(test) {
|
|
|
158
163
|
return;
|
|
159
164
|
test.cleanUpCalled = true;
|
|
160
165
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
161
|
-
if (hook.type !=
|
|
166
|
+
if (hook.type != HookType.CleanUp)
|
|
162
167
|
continue;
|
|
163
168
|
try {
|
|
164
|
-
await
|
|
169
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
165
170
|
}
|
|
166
171
|
catch (e) {
|
|
167
172
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
|
|
168
173
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
169
|
-
console.error(e
|
|
174
|
+
console.error(e?.stack ?? e);
|
|
170
175
|
throw e;
|
|
171
176
|
}
|
|
172
177
|
}
|
|
173
178
|
for (let tree of test.dependencies) {
|
|
174
|
-
HandleCleanUp(tree.dependency);
|
|
179
|
+
await HandleCleanUp(tree.dependency);
|
|
175
180
|
}
|
|
176
181
|
}
|
|
177
182
|
function DependencyLock(hashMap) {
|
package/dist/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|
package/dist/test.d.ts
CHANGED
|
@@ -21,10 +21,11 @@ export declare class Test {
|
|
|
21
21
|
specs: Map<string, ISpec>;
|
|
22
22
|
hooks: Map<string, IHook>;
|
|
23
23
|
isFinished: boolean;
|
|
24
|
+
isFullyFinished: boolean;
|
|
24
25
|
cleanUpCalled: boolean;
|
|
25
26
|
testInstance: any;
|
|
26
27
|
constructor(target: any);
|
|
27
|
-
|
|
28
|
+
get name(): any;
|
|
28
29
|
}
|
|
29
30
|
export declare enum HookType {
|
|
30
31
|
Before = 0,
|
package/dist/test.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,IAAI;
|
|
1
|
+
{"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,IAAI;IAYI,MAAM,EAAE,GAAG;IAX9B,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,IAAI,EAAE,CAAM;IACxB,IAAI,qBAA4B;IAChC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC/B,KAAK,qBAA4B;IACjC,KAAK,qBAA4B;IACjC,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;gBAEC,MAAM,EAAE,GAAG;IAK9B,IAAI,IAAI,QAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA;IACN,KAAK,IAAA;IACL,UAAU,IAAA;IACV,SAAS,IAAA;IACT,OAAO,IAAA;CACR;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAAI,QAAO,CAAC,CAAC;CAAE"}
|
package/dist/test.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class Test {
|
|
1
|
+
export class Test {
|
|
4
2
|
constructor(target) {
|
|
5
3
|
this.target = target;
|
|
6
4
|
this.dependencies = [];
|
|
@@ -11,18 +9,18 @@ class Test {
|
|
|
11
9
|
this.hooks = new Map();
|
|
12
10
|
this.cleanUpCalled = false;
|
|
13
11
|
this.isFinished = false;
|
|
12
|
+
this.isFullyFinished = false;
|
|
14
13
|
}
|
|
15
14
|
get name() {
|
|
16
15
|
return this.target.name;
|
|
17
16
|
}
|
|
18
17
|
}
|
|
19
|
-
|
|
20
|
-
var HookType;
|
|
18
|
+
export var HookType;
|
|
21
19
|
(function (HookType) {
|
|
22
20
|
HookType[HookType["Before"] = 0] = "Before";
|
|
23
21
|
HookType[HookType["After"] = 1] = "After";
|
|
24
22
|
HookType[HookType["BeforeEach"] = 2] = "BeforeEach";
|
|
25
23
|
HookType[HookType["AfterEach"] = 3] = "AfterEach";
|
|
26
24
|
HookType[HookType["CleanUp"] = 4] = "CleanUp";
|
|
27
|
-
})(HookType
|
|
25
|
+
})(HookType || (HookType = {}));
|
|
28
26
|
//# sourceMappingURL=test.js.map
|
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,IAAI;IAYf,YAAmB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAX9B,iBAAY,GAAkB,EAAE,CAAC;QACjC,eAAU,GAAW,EAAE,CAAC;QACxB,SAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;QAChC,cAAS,GAAiB,IAAI,CAAC;QAC/B,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACjC,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QAGjC,kBAAa,GAAY,KAAK,CAAC;QAI7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2CAAM,CAAA;IACN,yCAAK,CAAA;IACL,mDAAU,CAAA;IACV,iDAAS,CAAA;IACT,6CAAO,CAAA;AACT,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
|
package/dist/utils/executor.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function Executor(fn: Function, timeout: number): Promise<
|
|
1
|
+
export declare function Executor(fn: Function, timeout: number): Promise<void>;
|
|
2
2
|
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE"}
|
package/dist/utils/executor.js
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
function Executor(fn, timeout) {
|
|
1
|
+
export function Executor(fn, timeout) {
|
|
4
2
|
return new Promise(async (resolve, reject) => {
|
|
5
3
|
let _timeout = null;
|
|
6
4
|
try {
|
|
@@ -19,5 +17,4 @@ function Executor(fn, timeout) {
|
|
|
19
17
|
resolve();
|
|
20
18
|
});
|
|
21
19
|
}
|
|
22
|
-
exports.Executor = Executor;
|
|
23
20
|
//# sourceMappingURL=executor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,EAAY,EAAE,OAAe;IACpD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI;YACF,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE;gBACvC,QAAQ,GAAG,UAAU,CAAC;oBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC,EAAE,OAAO,CAAC,CAAC;gBAEZ,MAAM,aAAa,CAAC;aACrB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;QAED,YAAY,CAAC,QAAS,CAAC,CAAC;QAExB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class TimeDifference {
|
|
1
|
+
export class TimeDifference {
|
|
4
2
|
constructor() {
|
|
5
3
|
this.startAt = process.hrtime();
|
|
6
4
|
}
|
|
@@ -12,5 +10,4 @@ class TimeDifference {
|
|
|
12
10
|
return diff[0] * 1000 + diff[1] / 1e6;
|
|
13
11
|
}
|
|
14
12
|
}
|
|
15
|
-
exports.TimeDifference = TimeDifference;
|
|
16
13
|
//# sourceMappingURL=time_difference.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time_difference.js","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"time_difference.js","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAGzB;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAMM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAMD,GAAG;QACD,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;CACF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export declare function TimeFactor(diff: number, timeout: number):
|
|
1
|
+
export declare function TimeFactor(diff: number, timeout: number): any;
|
|
2
2
|
export declare function TimeResolve(ms: number): string;
|
|
3
3
|
export declare function Delay(ms: number): Promise<void>;
|
|
4
4
|
//# sourceMappingURL=time_factor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time_factor.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"time_factor.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAIvD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,UAKrC;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
function TimeFactor(diff, timeout) {
|
|
1
|
+
import * as clrs from 'colors/safe.js';
|
|
2
|
+
const colors = clrs.default;
|
|
3
|
+
export function TimeFactor(diff, timeout) {
|
|
5
4
|
if (diff < timeout / 5)
|
|
6
5
|
return colors.green(TimeResolve(diff).padStart(9, ' '));
|
|
7
6
|
if (diff < timeout / 2)
|
|
8
7
|
return colors.yellow(TimeResolve(diff).padStart(9, ' '));
|
|
9
8
|
return colors.red(TimeResolve(diff).padStart(9, ' '));
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
function TimeResolve(ms) {
|
|
10
|
+
export function TimeResolve(ms) {
|
|
13
11
|
if (ms < 1000)
|
|
14
12
|
return (ms * 100 | 0) / 100 + ' ms';
|
|
15
13
|
if (ms < 60 * 1000)
|
|
@@ -18,9 +16,7 @@ function TimeResolve(ms) {
|
|
|
18
16
|
return (ms / 600 | 0) / 100 + ' m';
|
|
19
17
|
return (ms / 36000 | 0) / 100 + ' h';
|
|
20
18
|
}
|
|
21
|
-
|
|
22
|
-
function Delay(ms) {
|
|
19
|
+
export function Delay(ms) {
|
|
23
20
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
24
21
|
}
|
|
25
|
-
exports.Delay = Delay;
|
|
26
22
|
//# sourceMappingURL=time_factor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time_factor.js","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"time_factor.js","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,GAAI,IAAY,CAAC,OAAO,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACnD,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,33 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "nole",
|
|
3
|
-
"version": "
|
|
4
|
-
"
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
|
|
33
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "nole",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Testing Library for Typescript projects",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/co3moz/nole"
|
|
11
|
+
},
|
|
12
|
+
"bin": {
|
|
13
|
+
"nole": "./bin/nole.js"
|
|
14
|
+
},
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc",
|
|
17
|
+
"test": "node --loader=ts-node/esm ./bin/nole.js ./test/**/*.test.ts"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"typescript",
|
|
21
|
+
"test",
|
|
22
|
+
"library"
|
|
23
|
+
],
|
|
24
|
+
"author": "co3moz",
|
|
25
|
+
"license": "ISC",
|
|
26
|
+
"dependencies": {
|
|
27
|
+
"@types/node": "^16.11.41",
|
|
28
|
+
"colors": "^1.3.3",
|
|
29
|
+
"commander": "^2.19.0",
|
|
30
|
+
"glob": "^7.2.3",
|
|
31
|
+
"ts-node": "^10.8.1",
|
|
32
|
+
"typescript": "^4.7.3"
|
|
33
|
+
}
|
|
34
|
+
}
|
package/src/data.ts
CHANGED
package/src/decorators.ts
CHANGED
package/src/dynamic.ts
ADDED
package/src/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
|
|
2
|
-
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators';
|
|
3
|
-
export { HookType } from './test';
|
|
2
|
+
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
|
|
3
|
+
export { HookType } from './test.js';
|
|
4
|
+
export { skipTest } from './dynamic.js';
|
package/src/run.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { HashMap } from "./data";
|
|
2
|
-
import { TimeDifference } from "./utils/time_difference";
|
|
3
|
-
import { TimeFactor } from "./utils/time_factor";
|
|
4
|
-
import * as
|
|
5
|
-
import { Executor } from "./utils/executor";
|
|
6
|
-
import { HookType, Test } from "./test";
|
|
1
|
+
import { HashMap } from "./data.js";
|
|
2
|
+
import { TimeDifference } from "./utils/time_difference.js";
|
|
3
|
+
import { TimeFactor } from "./utils/time_factor.js";
|
|
4
|
+
import * as clrs from 'colors/safe.js';
|
|
5
|
+
import { Executor } from "./utils/executor.js";
|
|
6
|
+
import { HookType, Test } from "./test.js";
|
|
7
|
+
|
|
8
|
+
const colors = (clrs as any).default;
|
|
7
9
|
|
|
8
10
|
const OK_TEXT = colors.bold(colors.green(' (ok) '));
|
|
9
11
|
const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
|
|
12
|
+
const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
|
|
10
13
|
const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
|
|
11
14
|
const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
|
|
12
15
|
|
|
@@ -36,11 +39,13 @@ export function ManualRun(log: Function) {
|
|
|
36
39
|
await HandleSpecs(test, log);
|
|
37
40
|
await HandleAfterHooks(test);
|
|
38
41
|
|
|
42
|
+
test.isFinished = true;
|
|
43
|
+
|
|
39
44
|
if (test.dependents.length == 0) {
|
|
40
45
|
await HandleCleanUp(test);
|
|
41
46
|
}
|
|
42
|
-
|
|
43
|
-
test.
|
|
47
|
+
|
|
48
|
+
test.isFullyFinished = true;
|
|
44
49
|
} else {
|
|
45
50
|
DependencyLock(hashMap);
|
|
46
51
|
}
|
|
@@ -85,7 +90,7 @@ async function HandleBeforeHooks(test: Test) {
|
|
|
85
90
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
|
|
86
91
|
|
|
87
92
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
88
|
-
console.error(e
|
|
93
|
+
console.error((e as any)?.stack ?? e);
|
|
89
94
|
throw e;
|
|
90
95
|
}
|
|
91
96
|
}
|
|
@@ -101,7 +106,7 @@ async function HandleBeforeEachHooks(test: Test) {
|
|
|
101
106
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
|
|
102
107
|
|
|
103
108
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
104
|
-
console.error(e
|
|
109
|
+
console.error((e as any)?.stack ?? e);
|
|
105
110
|
throw e;
|
|
106
111
|
}
|
|
107
112
|
}
|
|
@@ -117,7 +122,7 @@ async function HandleAfterEachHooks(test: Test) {
|
|
|
117
122
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
|
|
118
123
|
|
|
119
124
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
120
|
-
console.error(e
|
|
125
|
+
console.error((e as any)?.stack ?? e);
|
|
121
126
|
throw e;
|
|
122
127
|
}
|
|
123
128
|
}
|
|
@@ -145,10 +150,16 @@ async function HandleSpecs(test: Test, log: Function) {
|
|
|
145
150
|
|
|
146
151
|
log(`${OK_TEXT} ${timeText} ${testName}()`);
|
|
147
152
|
} catch (e) {
|
|
153
|
+
if ((e as any)?._nole_anchor) {
|
|
154
|
+
let reason = (e as any).reason;
|
|
155
|
+
log(`${DYNAMIC_SKIP_TEXT} ${' '.repeat(8)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
|
|
156
|
+
continue;
|
|
157
|
+
}
|
|
158
|
+
|
|
148
159
|
let timeText = TimeFactor(start.end(), spec.timeout);
|
|
149
160
|
|
|
150
161
|
console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
|
|
151
|
-
console.error(e
|
|
162
|
+
console.error((e as any)?.stack ?? e);
|
|
152
163
|
throw e;
|
|
153
164
|
}
|
|
154
165
|
|
|
@@ -166,7 +177,7 @@ async function HandleAfterHooks(test: Test) {
|
|
|
166
177
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
|
|
167
178
|
|
|
168
179
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
169
|
-
console.error(e
|
|
180
|
+
console.error((e as any)?.stack ?? e);
|
|
170
181
|
throw e;
|
|
171
182
|
}
|
|
172
183
|
}
|
|
@@ -176,7 +187,7 @@ async function HandleAfterHooks(test: Test) {
|
|
|
176
187
|
async function HandleCleanUp(test: Test) {
|
|
177
188
|
if (test.cleanUpCalled) return;
|
|
178
189
|
if (!test.dependents.every(dependent => dependent.isFinished)) return;
|
|
179
|
-
|
|
190
|
+
|
|
180
191
|
test.cleanUpCalled = true;
|
|
181
192
|
|
|
182
193
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
@@ -188,13 +199,13 @@ async function HandleCleanUp(test: Test) {
|
|
|
188
199
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
|
|
189
200
|
|
|
190
201
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
191
|
-
console.error(e
|
|
202
|
+
console.error((e as any)?.stack ?? e);
|
|
192
203
|
throw e;
|
|
193
204
|
}
|
|
194
205
|
}
|
|
195
206
|
|
|
196
207
|
for (let tree of test.dependencies) {
|
|
197
|
-
HandleCleanUp(tree.dependency);
|
|
208
|
+
await HandleCleanUp(tree.dependency);
|
|
198
209
|
}
|
|
199
210
|
}
|
|
200
211
|
|
package/src/test.ts
CHANGED
|
@@ -23,12 +23,14 @@ export class Test {
|
|
|
23
23
|
skipClass: ISkip | null = null;
|
|
24
24
|
specs = new Map<string, ISpec>();
|
|
25
25
|
hooks = new Map<string, IHook>();
|
|
26
|
-
isFinished: boolean;
|
|
26
|
+
isFinished: boolean; // cleanup ignored
|
|
27
|
+
isFullyFinished: boolean; // including cleanup
|
|
27
28
|
cleanUpCalled: boolean = false;
|
|
28
29
|
testInstance: any;
|
|
29
30
|
|
|
30
31
|
constructor(public target: any) {
|
|
31
32
|
this.isFinished = false;
|
|
33
|
+
this.isFullyFinished = false;
|
|
32
34
|
}
|
|
33
35
|
|
|
34
36
|
get name() {
|
package/src/utils/executor.ts
CHANGED
package/src/utils/time_factor.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as clrs from 'colors/safe.js';
|
|
2
|
+
|
|
3
|
+
const colors = (clrs as any).default;
|
|
2
4
|
|
|
3
5
|
export function TimeFactor(diff: number, timeout: number) {
|
|
4
6
|
if (diff < timeout / 5) return colors.green(TimeResolve(diff).padStart(9, ' '));
|
package/test/basic.test.ts
CHANGED
package/test/clean-up.test.ts
CHANGED
package/test/dynamic.test.ts
CHANGED
package/test/hook.test.ts
CHANGED
package/test/skip-all.test.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as assert from 'assert';
|
|
2
|
-
import { Spec, Skip } from "../src";
|
|
3
|
-
import { SkipClass } from '../src/decorators';
|
|
2
|
+
import { Spec, Skip } from "../src/index.js";
|
|
3
|
+
import { SkipClass } from '../src/decorators.js';
|
|
4
4
|
|
|
5
5
|
@SkipClass('skip all class')
|
|
6
6
|
export class SkipAllTest {
|
package/test/tsconfig.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
4
|
-
"module": "
|
|
3
|
+
"target": "es2020",
|
|
4
|
+
"module": "ES2020",
|
|
5
5
|
"lib": [
|
|
6
|
-
"
|
|
6
|
+
"es2020",
|
|
7
7
|
"esnext"
|
|
8
8
|
],
|
|
9
9
|
"declaration": true,
|
|
@@ -11,7 +11,6 @@
|
|
|
11
11
|
"sourceMap": true,
|
|
12
12
|
"outDir": "dist",
|
|
13
13
|
"removeComments": true,
|
|
14
|
-
"strict": true,
|
|
15
14
|
"experimentalDecorators": true,
|
|
16
15
|
"emitDecoratorMetadata": true
|
|
17
16
|
},
|
package/tsconfig.json
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
|
-
"target": "
|
|
4
|
-
"module": "
|
|
3
|
+
"target": "es2020",
|
|
4
|
+
"module": "es2020",
|
|
5
|
+
"moduleResolution": "node",
|
|
5
6
|
"lib": [
|
|
6
|
-
"
|
|
7
|
+
"es2020",
|
|
7
8
|
"esnext"
|
|
8
9
|
],
|
|
9
10
|
"declaration": true,
|
|
@@ -11,7 +12,6 @@
|
|
|
11
12
|
"sourceMap": true,
|
|
12
13
|
"outDir": "dist",
|
|
13
14
|
"removeComments": true,
|
|
14
|
-
"strict": true,
|
|
15
15
|
"experimentalDecorators": true,
|
|
16
16
|
"emitDecoratorMetadata": true
|
|
17
17
|
},
|