nole 1.0.12 → 2.0.2
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 +32 -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 +2 -6
- package/dist/data.js.map +1 -1
- package/dist/decorators.d.ts +2 -1
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +20 -17
- package/dist/decorators.js.map +1 -1
- package/dist/dynamic.js +1 -5
- package/dist/dynamic.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -13
- package/dist/index.js.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +39 -44
- package/dist/run.js.map +1 -1
- package/dist/run.test.d.ts +4 -0
- package/dist/run.test.d.ts.map +1 -0
- package/dist/run.test.js +31 -0
- package/dist/run.test.js.map +1 -0
- package/dist/test.d.ts +1 -0
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +5 -8
- package/dist/test.js.map +1 -1
- package/dist/utils/executor.js +1 -5
- package/dist/utils/executor.js.map +1 -1
- package/dist/utils/executor.test.d.ts +6 -0
- package/dist/utils/executor.test.d.ts.map +1 -0
- package/dist/utils/executor.test.js +49 -0
- package/dist/utils/executor.test.js.map +1 -0
- package/dist/utils/time_difference.js +1 -5
- package/dist/utils/time_difference.js.map +1 -1
- package/dist/utils/time_difference.test.d.ts +4 -0
- package/dist/utils/time_difference.test.d.ts.map +1 -0
- package/dist/utils/time_difference.test.js +24 -0
- package/dist/utils/time_difference.test.js.map +1 -0
- 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 -10
- package/dist/utils/time_factor.js.map +1 -1
- package/dist/utils/time_factor.test.d.ts +4 -0
- package/dist/utils/time_factor.test.d.ts.map +1 -0
- package/dist/utils/time_factor.test.js +42 -0
- package/dist/utils/time_factor.test.js.map +1 -0
- package/package.json +28 -6
- package/src/data.ts +2 -2
- package/src/decorators.ts +19 -2
- package/src/index.ts +3 -3
- package/src/run.ts +30 -21
- package/src/test.ts +3 -4
- package/src/utils/executor.test.ts +27 -0
- package/src/utils/executor.ts +1 -1
- package/src/utils/time_difference.test.ts +12 -0
- package/src/utils/time_factor.test.ts +29 -0
- 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 +1 -1
- package/test/dynamic.test.ts +1 -1
- package/test/hook.test.ts +2 -2
- package/test/multi-dependency.test.ts +23 -0
- package/test/skip-all.test.ts +9 -3
- 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';
|
|
@@ -146,6 +150,32 @@ class Other {
|
|
|
146
150
|
> * All dependencies will be waited until done
|
|
147
151
|
> * If dependencies cannot resolve, it will occurr an error after the available tests done.
|
|
148
152
|
|
|
153
|
+
|
|
154
|
+
## Multi Dependencies
|
|
155
|
+
|
|
156
|
+
Easier way to declare dependencies by decorating class with an array.
|
|
157
|
+
|
|
158
|
+
```ts
|
|
159
|
+
// test/redis.test.ts
|
|
160
|
+
import { Spec, Dependencies } from 'nole';
|
|
161
|
+
import { Database } from './database.test';
|
|
162
|
+
import { Other } from './other.test';
|
|
163
|
+
|
|
164
|
+
@Dependencies([
|
|
165
|
+
Database,
|
|
166
|
+
Other
|
|
167
|
+
])
|
|
168
|
+
class Redis {
|
|
169
|
+
database: Database; // camel-case syntax
|
|
170
|
+
// even though other does not exist in this test, but nole will make sure it is completed when this test runs
|
|
171
|
+
|
|
172
|
+
@Spec()
|
|
173
|
+
async DoThings() {
|
|
174
|
+
await database.connection.doStuff();
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
```
|
|
178
|
+
|
|
149
179
|
## Hook
|
|
150
180
|
|
|
151
181
|
Hooks will help you to develop helper methods.
|
|
@@ -258,6 +288,8 @@ We do not provide assert library. You can use chai or should.js.
|
|
|
258
288
|
|
|
259
289
|
## Compiled files
|
|
260
290
|
|
|
291
|
+
> Deprecated (v2.x+), It will always use ts-node/esm module
|
|
292
|
+
|
|
261
293
|
You can run the compiled test files with `-T` option.
|
|
262
294
|
|
|
263
295
|
```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,13 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HashMap = void 0;
|
|
4
1
|
const KEY = '_nole_hash';
|
|
5
|
-
function HashMap() {
|
|
6
|
-
let g = global
|
|
2
|
+
export function HashMap() {
|
|
3
|
+
let g = global;
|
|
7
4
|
if (g[KEY]) {
|
|
8
5
|
return g[KEY];
|
|
9
6
|
}
|
|
10
7
|
return g[KEY] = new Map();
|
|
11
8
|
}
|
|
12
|
-
exports.HashMap = HashMap;
|
|
13
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,CAAC;IAEpB,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,6 +1,7 @@
|
|
|
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
|
+
export declare function Dependencies(dependencies: ClassDefition<any>[]): ClassDecorator;
|
|
4
5
|
export declare function Hook(type: HookType, timeout?: number): MethodDecorator;
|
|
5
6
|
export declare function Skip(reason?: string): MethodDecorator;
|
|
6
7
|
export declare function SkipClass(reason?: string): ClassDecorator;
|
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;AAO1D,wBAAgB,IAAI,CAAC,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5D;AAOD,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAI7E;AAMD,wBAAgB,YAAY,CAAC,YAAY,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,GAAG,cAAc,CAS/E;AASD,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,42 +1,45 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const test_1 = require("./test");
|
|
6
|
-
function Spec(timeout = 5000) {
|
|
1
|
+
import { HashMap } from "./data.js";
|
|
2
|
+
import { Test } from "./test.js";
|
|
3
|
+
import camelcase from "camelcase";
|
|
4
|
+
export function Spec(timeout = 5000) {
|
|
7
5
|
return function (target, propertyKey) {
|
|
8
6
|
DeclareSpecForTestClass(target, propertyKey, timeout);
|
|
9
7
|
};
|
|
10
8
|
}
|
|
11
|
-
|
|
12
|
-
function Dependency(dependency) {
|
|
9
|
+
export function Dependency(dependency) {
|
|
13
10
|
return function (target, propertyKey) {
|
|
14
11
|
DeclareDependencyForTestClass(target, propertyKey, dependency);
|
|
15
12
|
};
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
function
|
|
14
|
+
export function Dependencies(dependencies) {
|
|
15
|
+
return function (target) {
|
|
16
|
+
for (const dependency of dependencies) {
|
|
17
|
+
const propertyKey = camelcase(dependency.name, {
|
|
18
|
+
preserveConsecutiveUppercase: true
|
|
19
|
+
});
|
|
20
|
+
DeclareDependencyForTestClass({ constructor: target }, propertyKey, dependency);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function Hook(type, timeout = 5000) {
|
|
19
25
|
return function (target, propertyKey) {
|
|
20
26
|
DeclareHookForTestClass(target, propertyKey, type, timeout);
|
|
21
27
|
};
|
|
22
28
|
}
|
|
23
|
-
|
|
24
|
-
function Skip(reason) {
|
|
29
|
+
export function Skip(reason) {
|
|
25
30
|
return function (target, propertyKey) {
|
|
26
31
|
DeclareAsSkipped(target, propertyKey, reason ? reason : '');
|
|
27
32
|
};
|
|
28
33
|
}
|
|
29
|
-
|
|
30
|
-
function SkipClass(reason) {
|
|
34
|
+
export function SkipClass(reason) {
|
|
31
35
|
return function (target) {
|
|
32
36
|
DeclareAsSkippedClass(target, reason ? reason : '');
|
|
33
37
|
};
|
|
34
38
|
}
|
|
35
|
-
exports.SkipClass = SkipClass;
|
|
36
39
|
function GetTestInstanceOfTarget(target) {
|
|
37
|
-
let instance =
|
|
40
|
+
let instance = HashMap().get(target);
|
|
38
41
|
if (!instance) {
|
|
39
|
-
|
|
42
|
+
HashMap().set(target, instance = new Test(target));
|
|
40
43
|
}
|
|
41
44
|
return instance;
|
|
42
45
|
}
|
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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"}
|
package/dist/dynamic.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.skipTest = void 0;
|
|
4
|
-
function skipTest(reason) {
|
|
1
|
+
export function skipTest(reason) {
|
|
5
2
|
throw new NoleManualSkip(reason);
|
|
6
3
|
}
|
|
7
|
-
exports.skipTest = skipTest;
|
|
8
4
|
class NoleManualSkip extends Error {
|
|
9
5
|
constructor(reason) {
|
|
10
6
|
super(`Dynamicly skipped! ${reason}`);
|
package/dist/dynamic.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"
|
|
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,4 +1,4 @@
|
|
|
1
|
-
export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators';
|
|
2
|
-
export { HookType } from './test';
|
|
3
|
-
export { skipTest } from './dynamic';
|
|
1
|
+
export { Dependency, Spec, Hook, Skip, SkipClass, Dependencies } from './decorators.js';
|
|
2
|
+
export { HookType } from './test.js';
|
|
3
|
+
export { skipTest } from './dynamic.js';
|
|
4
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,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,14 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var decorators_1 = require("./decorators");
|
|
5
|
-
Object.defineProperty(exports, "Dependency", { enumerable: true, get: function () { return decorators_1.Dependency; } });
|
|
6
|
-
Object.defineProperty(exports, "Spec", { enumerable: true, get: function () { return decorators_1.Spec; } });
|
|
7
|
-
Object.defineProperty(exports, "Hook", { enumerable: true, get: function () { return decorators_1.Hook; } });
|
|
8
|
-
Object.defineProperty(exports, "Skip", { enumerable: true, get: function () { return decorators_1.Skip; } });
|
|
9
|
-
Object.defineProperty(exports, "SkipClass", { enumerable: true, get: function () { return decorators_1.SkipClass; } });
|
|
10
|
-
var test_1 = require("./test");
|
|
11
|
-
Object.defineProperty(exports, "HookType", { enumerable: true, get: function () { return test_1.HookType; } });
|
|
12
|
-
var dynamic_1 = require("./dynamic");
|
|
13
|
-
Object.defineProperty(exports, "skipTest", { enumerable: true, get: function () { return dynamic_1.skipTest; } });
|
|
1
|
+
export { Dependency, Spec, Hook, Skip, SkipClass, Dependencies } from './decorators.js';
|
|
2
|
+
export { HookType } from './test.js';
|
|
3
|
+
export { skipTest } from './dynamic.js';
|
|
14
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,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxF,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,24 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const colors =
|
|
8
|
-
const executor_1 = require("./utils/executor");
|
|
9
|
-
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;
|
|
10
8
|
const OK_TEXT = colors.bold(colors.green(' (ok) '));
|
|
11
9
|
const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
|
|
12
10
|
const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
|
|
13
11
|
const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
|
|
14
12
|
const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
|
|
15
|
-
function ManualRun(log) {
|
|
13
|
+
export function ManualRun(log) {
|
|
16
14
|
if (!log) {
|
|
17
15
|
log = console.log.bind(console);
|
|
18
16
|
}
|
|
19
17
|
return new Promise(async (resolve, reject) => {
|
|
20
18
|
try {
|
|
21
|
-
let hashMap = new Map(
|
|
19
|
+
let hashMap = new Map(HashMap());
|
|
22
20
|
if (!hashMap.size) {
|
|
23
21
|
log(`${FAILED_TEXT} no specs found`);
|
|
24
22
|
throw new Error('No specs found');
|
|
@@ -32,10 +30,11 @@ function ManualRun(log) {
|
|
|
32
30
|
await HandleBeforeHooks(test);
|
|
33
31
|
await HandleSpecs(test, log);
|
|
34
32
|
await HandleAfterHooks(test);
|
|
33
|
+
test.isFinished = true;
|
|
35
34
|
if (test.dependents.length == 0) {
|
|
36
|
-
await HandleCleanUp(test);
|
|
35
|
+
await HandleCleanUp(test, log);
|
|
37
36
|
}
|
|
38
|
-
test.
|
|
37
|
+
test.isFullyFinished = true;
|
|
39
38
|
}
|
|
40
39
|
else {
|
|
41
40
|
DependencyLock(hashMap);
|
|
@@ -48,7 +47,6 @@ function ManualRun(log) {
|
|
|
48
47
|
}
|
|
49
48
|
});
|
|
50
49
|
}
|
|
51
|
-
exports.ManualRun = ManualRun;
|
|
52
50
|
function PickNextTestFromHashMap(hashMap) {
|
|
53
51
|
for (let test of hashMap.values()) {
|
|
54
52
|
if (test.isFinished)
|
|
@@ -69,55 +67,51 @@ function HandleDependencies(test) {
|
|
|
69
67
|
}
|
|
70
68
|
}
|
|
71
69
|
async function HandleBeforeHooks(test) {
|
|
72
|
-
var _a;
|
|
73
70
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
74
|
-
if (hook.type !=
|
|
71
|
+
if (hook.type != HookType.Before)
|
|
75
72
|
continue;
|
|
76
73
|
try {
|
|
77
|
-
await
|
|
74
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
78
75
|
}
|
|
79
76
|
catch (e) {
|
|
80
77
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
|
|
81
78
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
82
|
-
console.error(
|
|
79
|
+
console.error(e?.stack ?? e);
|
|
83
80
|
throw e;
|
|
84
81
|
}
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
84
|
async function HandleBeforeEachHooks(test) {
|
|
88
|
-
var _a;
|
|
89
85
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
90
|
-
if (hook.type !=
|
|
86
|
+
if (hook.type != HookType.BeforeEach)
|
|
91
87
|
continue;
|
|
92
88
|
try {
|
|
93
|
-
await
|
|
89
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
94
90
|
}
|
|
95
91
|
catch (e) {
|
|
96
92
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
|
|
97
93
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
98
|
-
console.error(
|
|
94
|
+
console.error(e?.stack ?? e);
|
|
99
95
|
throw e;
|
|
100
96
|
}
|
|
101
97
|
}
|
|
102
98
|
}
|
|
103
99
|
async function HandleAfterEachHooks(test) {
|
|
104
|
-
var _a;
|
|
105
100
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
106
|
-
if (hook.type !=
|
|
101
|
+
if (hook.type != HookType.AfterEach)
|
|
107
102
|
continue;
|
|
108
103
|
try {
|
|
109
|
-
await
|
|
104
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
110
105
|
}
|
|
111
106
|
catch (e) {
|
|
112
107
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
|
|
113
108
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
114
|
-
console.error(
|
|
109
|
+
console.error(e?.stack ?? e);
|
|
115
110
|
throw e;
|
|
116
111
|
}
|
|
117
112
|
}
|
|
118
113
|
}
|
|
119
114
|
async function HandleSpecs(test, log) {
|
|
120
|
-
var _a;
|
|
121
115
|
for (let [propertyKey, spec] of test.specs.entries()) {
|
|
122
116
|
let testName = colors.bold(colors.yellow(test.name + '.' + propertyKey));
|
|
123
117
|
const shouldPropertySkip = test.skip.has(propertyKey);
|
|
@@ -127,64 +121,65 @@ async function HandleSpecs(test, log) {
|
|
|
127
121
|
continue;
|
|
128
122
|
}
|
|
129
123
|
await HandleBeforeEachHooks(test);
|
|
130
|
-
let start =
|
|
124
|
+
let start = TimeDifference.begin();
|
|
131
125
|
try {
|
|
132
|
-
await
|
|
133
|
-
let timeText =
|
|
126
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
|
|
127
|
+
let timeText = TimeFactor(start.end(), spec.timeout);
|
|
134
128
|
log(`${OK_TEXT} ${timeText} ${testName}()`);
|
|
135
129
|
}
|
|
136
130
|
catch (e) {
|
|
137
|
-
if (e
|
|
131
|
+
if (e?._nole_anchor) {
|
|
138
132
|
let reason = e.reason;
|
|
139
133
|
log(`${DYNAMIC_SKIP_TEXT} ${' '.repeat(8)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
|
|
140
134
|
continue;
|
|
141
135
|
}
|
|
142
|
-
let timeText =
|
|
136
|
+
let timeText = TimeFactor(start.end(), spec.timeout);
|
|
143
137
|
console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
|
|
144
|
-
console.error(
|
|
138
|
+
console.error(e?.stack ?? e);
|
|
145
139
|
throw e;
|
|
146
140
|
}
|
|
147
141
|
await HandleAfterEachHooks(test);
|
|
148
142
|
}
|
|
149
143
|
}
|
|
150
144
|
async function HandleAfterHooks(test) {
|
|
151
|
-
var _a;
|
|
152
145
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
153
|
-
if (hook.type !=
|
|
146
|
+
if (hook.type != HookType.After)
|
|
154
147
|
continue;
|
|
155
148
|
try {
|
|
156
|
-
await
|
|
149
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
157
150
|
}
|
|
158
151
|
catch (e) {
|
|
159
152
|
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
|
|
160
153
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
161
|
-
console.error(
|
|
154
|
+
console.error(e?.stack ?? e);
|
|
162
155
|
throw e;
|
|
163
156
|
}
|
|
164
157
|
}
|
|
165
158
|
}
|
|
166
|
-
async function HandleCleanUp(test) {
|
|
167
|
-
var _a;
|
|
159
|
+
async function HandleCleanUp(test, log) {
|
|
168
160
|
if (test.cleanUpCalled)
|
|
169
161
|
return;
|
|
170
162
|
if (!test.dependents.every(dependent => dependent.isFinished))
|
|
171
163
|
return;
|
|
172
164
|
test.cleanUpCalled = true;
|
|
173
165
|
for (let [propertyKey, hook] of test.hooks.entries()) {
|
|
174
|
-
if (hook.type !=
|
|
166
|
+
if (hook.type != HookType.CleanUp)
|
|
175
167
|
continue;
|
|
168
|
+
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
|
|
169
|
+
let start = TimeDifference.begin();
|
|
176
170
|
try {
|
|
177
|
-
await
|
|
171
|
+
await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
|
|
172
|
+
let timeText = TimeFactor(start.end(), hook.timeout);
|
|
173
|
+
log(`${OK_TEXT} ${timeText} ${hookName}()`);
|
|
178
174
|
}
|
|
179
175
|
catch (e) {
|
|
180
|
-
let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
|
|
181
176
|
console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
|
|
182
|
-
console.error(
|
|
177
|
+
console.error(e?.stack ?? e);
|
|
183
178
|
throw e;
|
|
184
179
|
}
|
|
185
180
|
}
|
|
186
181
|
for (let tree of test.dependencies) {
|
|
187
|
-
HandleCleanUp(tree.dependency);
|
|
182
|
+
await HandleCleanUp(tree.dependency, log);
|
|
188
183
|
}
|
|
189
184
|
}
|
|
190
185
|
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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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../src/run.test.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;IAEZ,QAAQ;CAYf"}
|
package/dist/run.test.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { HashMap } from "./data.js";
|
|
11
|
+
import { Spec } from "./index.js";
|
|
12
|
+
import { ManualRun } from "./run.js";
|
|
13
|
+
export class RunTest {
|
|
14
|
+
async evaluate() {
|
|
15
|
+
const hashmap = HashMap();
|
|
16
|
+
const backup = new Map(hashmap);
|
|
17
|
+
hashmap.clear();
|
|
18
|
+
await ManualRun(console.log);
|
|
19
|
+
hashmap.clear();
|
|
20
|
+
for (const [key, value] of backup.entries()) {
|
|
21
|
+
hashmap.set(key, value);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
__decorate([
|
|
26
|
+
Spec(),
|
|
27
|
+
__metadata("design:type", Function),
|
|
28
|
+
__metadata("design:paramtypes", []),
|
|
29
|
+
__metadata("design:returntype", Promise)
|
|
30
|
+
], RunTest.prototype, "evaluate", null);
|
|
31
|
+
//# sourceMappingURL=run.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run.test.js","sourceRoot":"","sources":["../src/run.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,OAAO,OAAO;IAElB,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;CACF;AAZC;IADC,IAAI,EAAE;;;;uCAYN"}
|