nole 2.2.2 → 3.1.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/.github/workflows/ci.yaml +34 -0
- package/LICENSE.md +21 -0
- package/README.md +474 -388
- package/bin/nole.js +145 -111
- package/dist/const.d.ts +8 -0
- package/dist/const.d.ts.map +1 -0
- package/dist/const.js +9 -0
- package/dist/core.d.ts +22 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +56 -0
- package/dist/dynamic.d.ts +5 -1
- package/dist/dynamic.d.ts.map +1 -1
- package/dist/dynamic.js +35 -1
- package/dist/handle/after-each-hooks.d.ts +3 -0
- package/dist/handle/after-each-hooks.d.ts.map +1 -0
- package/dist/handle/after-each-hooks.js +26 -0
- package/dist/handle/after-hooks.d.ts +3 -0
- package/dist/handle/after-hooks.d.ts.map +1 -0
- package/dist/handle/after-hooks.js +24 -0
- package/dist/handle/before-each-hooks.d.ts +3 -0
- package/dist/handle/before-each-hooks.d.ts.map +1 -0
- package/dist/handle/before-each-hooks.js +26 -0
- package/dist/handle/before-hooks.d.ts +3 -0
- package/dist/handle/before-hooks.d.ts.map +1 -0
- package/dist/handle/before-hooks.js +34 -0
- package/dist/handle/cleanup-hooks.d.ts +3 -0
- package/dist/handle/cleanup-hooks.d.ts.map +1 -0
- package/dist/handle/cleanup-hooks.js +34 -0
- package/dist/handle/specs.d.ts +3 -0
- package/dist/handle/specs.d.ts.map +1 -0
- package/dist/handle/specs.js +50 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/pipeline.test.d.ts +7 -0
- package/dist/pipeline.test.d.ts.map +1 -0
- package/dist/pipeline.test.js +124 -0
- package/dist/run.d.ts +7 -6
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +166 -196
- package/dist/symbol.d.ts +2 -0
- package/dist/symbol.d.ts.map +1 -0
- package/dist/symbol.js +2 -0
- package/dist/test-wrap.d.ts +38 -0
- package/dist/test-wrap.d.ts.map +1 -0
- package/dist/test-wrap.js +30 -0
- package/dist/utils/executor.js +1 -1
- package/dist/utils/executor.test.d.ts +3 -1
- package/dist/utils/executor.test.d.ts.map +1 -1
- package/dist/utils/executor.test.js +3 -30
- package/dist/utils/time_difference.d.ts +9 -0
- package/dist/utils/time_difference.d.ts.map +1 -1
- package/dist/utils/time_difference.js +10 -1
- package/dist/utils/time_difference.test.d.ts +3 -1
- package/dist/utils/time_difference.test.d.ts.map +1 -1
- package/dist/utils/time_difference.test.js +5 -18
- package/dist/utils/time_factor.d.ts.map +1 -1
- package/dist/utils/time_factor.js +2 -3
- package/dist/utils/time_factor.test.d.ts +3 -1
- package/dist/utils/time_factor.test.d.ts.map +1 -1
- package/dist/utils/time_factor.test.js +3 -18
- package/package.json +58 -58
- package/tsconfig.json +18 -18
- package/dist/data.d.ts +0 -3
- package/dist/data.d.ts.map +0 -1
- package/dist/data.js +0 -9
- package/dist/data.js.map +0 -1
- package/dist/decorators.d.ts +0 -9
- package/dist/decorators.d.ts.map +0 -1
- package/dist/decorators.js +0 -118
- package/dist/decorators.js.map +0 -1
- package/dist/dynamic.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/run.js.map +0 -1
- package/dist/test.d.ts +0 -39
- package/dist/test.d.ts.map +0 -1
- package/dist/test.js +0 -25
- package/dist/test.js.map +0 -1
- package/dist/utils/executor.js.map +0 -1
- package/dist/utils/executor.test.js.map +0 -1
- package/dist/utils/time_difference.js.map +0 -1
- package/dist/utils/time_difference.test.js.map +0 -1
- package/dist/utils/time_factor.js.map +0 -1
- package/dist/utils/time_factor.test.js.map +0 -1
- package/src/data.ts +0 -13
- package/src/decorators.ts +0 -208
- package/src/dynamic.ts +0 -11
- package/src/index.ts +0 -13
- package/src/run.ts +0 -331
- package/src/test.ts +0 -47
- package/src/utils/executor.test.ts +0 -27
- package/src/utils/executor.ts +0 -22
- package/src/utils/time_difference.test.ts +0 -12
- package/src/utils/time_difference.ts +0 -26
- package/src/utils/time_factor.test.ts +0 -29
- package/src/utils/time_factor.ts +0 -35
- package/test/basic.test.ts +0 -24
- package/test/before.test.ts +0 -54
- package/test/clean-up.test.ts +0 -52
- package/test/dynamic-skip.test.ts +0 -8
- package/test/dynamic.test.ts +0 -13
- package/test/hook.test.ts +0 -27
- package/test/multi-dependency.test.ts +0 -45
- package/test/multiple-uppercased-chars.test.ts +0 -19
- package/test/skip-all.test.ts +0 -19
- package/test/tsconfig.json +0 -24
- package/test/turkish-chars.test.ts +0 -19
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Spec } from "../index.js";
|
|
2
|
-
import { Delay, TimeFactor } from "./time_factor.js";
|
|
3
|
-
|
|
4
|
-
export class TimeFactorTest {
|
|
5
|
-
@Spec()
|
|
6
|
-
async evaluate() {
|
|
7
|
-
await Delay(1);
|
|
8
|
-
|
|
9
|
-
for (const n of [
|
|
10
|
-
100,
|
|
11
|
-
1000,
|
|
12
|
-
60 * 1000,
|
|
13
|
-
120 * 1000,
|
|
14
|
-
60 * 60 * 1000,
|
|
15
|
-
65 * 60 * 1000,
|
|
16
|
-
25 * 60 * 60 * 1000,
|
|
17
|
-
]) {
|
|
18
|
-
TimeFactor(n / 1000, n);
|
|
19
|
-
TimeFactor(n / 500, n);
|
|
20
|
-
TimeFactor(n / 10, n);
|
|
21
|
-
TimeFactor(n / 6, n);
|
|
22
|
-
TimeFactor(n / 4, n);
|
|
23
|
-
TimeFactor(n / 2, n);
|
|
24
|
-
TimeFactor(n / 1.5, n);
|
|
25
|
-
TimeFactor(n, n);
|
|
26
|
-
TimeFactor(n * 2, n);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
package/src/utils/time_factor.ts
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import * as clrs from "colors/safe.js";
|
|
2
|
-
|
|
3
|
-
const colors = (clrs as any).default;
|
|
4
|
-
|
|
5
|
-
export function TimeFactor(diff: number, timeout: number) {
|
|
6
|
-
if (diff < timeout / 5) {
|
|
7
|
-
return colors.green(TimeResolve(diff).padStart(9, " "));
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
if (diff < timeout / 2) {
|
|
11
|
-
return colors.yellow(TimeResolve(diff).padStart(9, " "));
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
return colors.red(TimeResolve(diff).padStart(9, " "));
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export function TimeResolve(ms: number) {
|
|
18
|
-
if (ms < 1000) {
|
|
19
|
-
return ((ms * 100) | 0) / 100 + " ms";
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
if (ms < 60 * 1000) {
|
|
23
|
-
return ((ms / 10) | 0) / 100 + " s";
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
if (ms < 60 * 60 * 1000) {
|
|
27
|
-
return ((ms / 600) | 0) / 100 + " m";
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return ((ms / 36000) | 0) / 100 + " h";
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
export function Delay(ms: number): Promise<void> {
|
|
34
|
-
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
35
|
-
}
|
package/test/basic.test.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { Spec, Dependency } from "../src/index.js";
|
|
2
|
-
|
|
3
|
-
export class BasicTest {
|
|
4
|
-
variable = 1;
|
|
5
|
-
|
|
6
|
-
@Spec()
|
|
7
|
-
async checkEqual() {
|
|
8
|
-
await new Promise((resolve) => {
|
|
9
|
-
setTimeout(resolve, 1010);
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export class DependencyTest {
|
|
15
|
-
@Dependency(BasicTest)
|
|
16
|
-
basicTest!: BasicTest;
|
|
17
|
-
|
|
18
|
-
@Spec()
|
|
19
|
-
async check() {
|
|
20
|
-
if (this.basicTest.variable !== 1) {
|
|
21
|
-
throw new Error("Dependency test failed!");
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
package/test/before.test.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import { strict as assert } from "assert";
|
|
2
|
-
import { Before, Spec, After, Hook, HookType, Dependents } from "../src/index.js";
|
|
3
|
-
|
|
4
|
-
// @After(() => [AlwaysExecuteFirst])
|
|
5
|
-
export class AlwaysExecuteLater {
|
|
6
|
-
alwaysExecuteFirst: AlwaysExecuteFirst;
|
|
7
|
-
|
|
8
|
-
@Spec()
|
|
9
|
-
test() {
|
|
10
|
-
assert(this.alwaysExecuteFirst.value === 1);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
@Hook(HookType.CleanUp)
|
|
14
|
-
cleanUp() {}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@Dependents(() => [AlwaysExecuteLater])
|
|
18
|
-
export class AlwaysExecuteFirst {
|
|
19
|
-
value = 0;
|
|
20
|
-
|
|
21
|
-
@Spec()
|
|
22
|
-
test() {
|
|
23
|
-
this.value = 1;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
@Hook(HookType.CleanUp)
|
|
27
|
-
cleanUp() {}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@After(() => [AlwaysExecuteFirst2])
|
|
31
|
-
export class AlwaysExecuteLater2 {
|
|
32
|
-
alwaysExecuteFirst2: AlwaysExecuteFirst2;
|
|
33
|
-
|
|
34
|
-
@Spec()
|
|
35
|
-
test() {
|
|
36
|
-
assert(this.alwaysExecuteFirst2.value === 1);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
@Hook(HookType.CleanUp)
|
|
40
|
-
cleanUp() {}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// @Before(() => [AlwaysExecuteLater2])
|
|
44
|
-
export class AlwaysExecuteFirst2 {
|
|
45
|
-
value = 0;
|
|
46
|
-
|
|
47
|
-
@Spec()
|
|
48
|
-
test() {
|
|
49
|
-
this.value = 1;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
@Hook(HookType.CleanUp)
|
|
53
|
-
cleanUp() {}
|
|
54
|
-
}
|
package/test/clean-up.test.ts
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { Spec, Dependency, Hook, HookType } from "../src/index.js";
|
|
2
|
-
|
|
3
|
-
export class CleanUpLayer1Test {
|
|
4
|
-
data: any;
|
|
5
|
-
|
|
6
|
-
@Spec()
|
|
7
|
-
async start() {
|
|
8
|
-
this.data = { somethingImportant: 1 };
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
@Hook(HookType.CleanUp)
|
|
12
|
-
async cleanUp() {
|
|
13
|
-
this.data = null;
|
|
14
|
-
console.log("layer 1 clean up completed!");
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export class CleanUpLayer2Test {
|
|
19
|
-
data: any;
|
|
20
|
-
|
|
21
|
-
@Dependency(CleanUpLayer1Test)
|
|
22
|
-
previousLayer!: any;
|
|
23
|
-
|
|
24
|
-
@Spec()
|
|
25
|
-
async start() {
|
|
26
|
-
this.data = { somethingImportant: 1 };
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
@Hook(HookType.CleanUp)
|
|
30
|
-
async cleanUp() {
|
|
31
|
-
this.data = null;
|
|
32
|
-
console.log("layer 2 clean up completed!");
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
export class CleanUpLayer3Test {
|
|
37
|
-
data: any;
|
|
38
|
-
|
|
39
|
-
@Dependency(CleanUpLayer2Test)
|
|
40
|
-
previousLayer!: any;
|
|
41
|
-
|
|
42
|
-
@Spec()
|
|
43
|
-
async start() {
|
|
44
|
-
this.data = { somethingImportant: 1 };
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
@Hook(HookType.CleanUp)
|
|
48
|
-
async cleanUp() {
|
|
49
|
-
this.data = null;
|
|
50
|
-
console.log("layer 3 clean up completed!");
|
|
51
|
-
}
|
|
52
|
-
}
|
package/test/dynamic.test.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as assert from "assert";
|
|
2
|
-
import { Spec } from "../src/index.js";
|
|
3
|
-
|
|
4
|
-
export class DynamicTest {
|
|
5
|
-
@Spec()
|
|
6
|
-
async thisTestsShouldNotFail() {
|
|
7
|
-
for (let i = 0; i < 10; i++) this.testThis(i);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
testThis(value: number) {
|
|
11
|
-
assert.notEqual(value, 10);
|
|
12
|
-
}
|
|
13
|
-
}
|
package/test/hook.test.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import * as assert from "assert";
|
|
2
|
-
import { Spec, Hook, Skip, HookType } from "../src/index.js";
|
|
3
|
-
|
|
4
|
-
export class HookTest {
|
|
5
|
-
array: any[] = [1, 2, 3];
|
|
6
|
-
|
|
7
|
-
@Hook(HookType.BeforeEach)
|
|
8
|
-
async pushFourIntoArray() {
|
|
9
|
-
this.array.push(4);
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
@Spec()
|
|
13
|
-
async hasToBe4() {
|
|
14
|
-
assert.equal(this.array.pop(), 4);
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
@Skip("no need")
|
|
18
|
-
@Spec()
|
|
19
|
-
async hasToBe4Again() {
|
|
20
|
-
assert.equal(this.array.pop(), 4);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
@Spec()
|
|
24
|
-
async hasToBe4AgainButNotSkipped() {
|
|
25
|
-
assert.equal(this.array.pop(), 4);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import * as assert from "assert";
|
|
2
|
-
import { Dependencies, Spec } from "../src/index.js";
|
|
3
|
-
import { BasicTest } from "./basic.test.js";
|
|
4
|
-
import {
|
|
5
|
-
CleanUpLayer1Test,
|
|
6
|
-
CleanUpLayer2Test,
|
|
7
|
-
CleanUpLayer3Test,
|
|
8
|
-
} from "./clean-up.test.js";
|
|
9
|
-
import { DynamicSkipTest } from "./dynamic-skip.test.js";
|
|
10
|
-
import { HookTest } from "./hook.test.js";
|
|
11
|
-
|
|
12
|
-
@Dependencies(() => [
|
|
13
|
-
BasicTest,
|
|
14
|
-
CleanUpLayer1Test,
|
|
15
|
-
CleanUpLayer2Test,
|
|
16
|
-
CleanUpLayer3Test,
|
|
17
|
-
DynamicSkipTest,
|
|
18
|
-
HookTest,
|
|
19
|
-
MultiDependency,
|
|
20
|
-
])
|
|
21
|
-
export class MultiLazyDependency {
|
|
22
|
-
basicTest: BasicTest;
|
|
23
|
-
|
|
24
|
-
@Spec()
|
|
25
|
-
test() {
|
|
26
|
-
assert.strictEqual(this.basicTest.variable, 1);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
@Dependencies([
|
|
31
|
-
BasicTest,
|
|
32
|
-
CleanUpLayer1Test,
|
|
33
|
-
CleanUpLayer2Test,
|
|
34
|
-
CleanUpLayer3Test,
|
|
35
|
-
DynamicSkipTest,
|
|
36
|
-
HookTest,
|
|
37
|
-
])
|
|
38
|
-
export class MultiDependency {
|
|
39
|
-
basicTest: BasicTest;
|
|
40
|
-
|
|
41
|
-
@Spec()
|
|
42
|
-
test() {
|
|
43
|
-
assert.strictEqual(this.basicTest.variable, 1);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Spec, Dependencies } from "../src/index.js";
|
|
2
|
-
import { strict as assert } from "assert";
|
|
3
|
-
|
|
4
|
-
export class IOTPOTest {
|
|
5
|
-
@Spec()
|
|
6
|
-
async test() {}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
@Dependencies([IOTPOTest])
|
|
10
|
-
export class MultipleUppercasedCharsTest {
|
|
11
|
-
@Spec()
|
|
12
|
-
async check() {
|
|
13
|
-
assert.notEqual(
|
|
14
|
-
this["IOTPOTest"],
|
|
15
|
-
undefined,
|
|
16
|
-
"turkish character test is failed"
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
}
|
package/test/skip-all.test.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import * as assert from "assert";
|
|
2
|
-
import { Spec, Skip } from "../src/index.js";
|
|
3
|
-
import { SkipClass } from "../src/decorators.js";
|
|
4
|
-
|
|
5
|
-
@SkipClass("skip all class")
|
|
6
|
-
export class SkipAllTest {
|
|
7
|
-
@Spec()
|
|
8
|
-
async wontRun() {}
|
|
9
|
-
|
|
10
|
-
@Skip("won't run too")
|
|
11
|
-
@Spec()
|
|
12
|
-
async wontRunToo() {}
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
@SkipClass()
|
|
16
|
-
export class SkipAllWithoutReason {
|
|
17
|
-
@Spec()
|
|
18
|
-
async wontRun() {}
|
|
19
|
-
}
|
package/test/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "es2020",
|
|
4
|
-
"module": "ES2020",
|
|
5
|
-
"lib": [
|
|
6
|
-
"es2020",
|
|
7
|
-
"esnext"
|
|
8
|
-
],
|
|
9
|
-
"declaration": true,
|
|
10
|
-
"declarationMap": true,
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"outDir": "dist",
|
|
13
|
-
"removeComments": true,
|
|
14
|
-
"experimentalDecorators": true,
|
|
15
|
-
"emitDecoratorMetadata": true
|
|
16
|
-
},
|
|
17
|
-
"include": [
|
|
18
|
-
"./**/*.ts",
|
|
19
|
-
],
|
|
20
|
-
"exclude": [
|
|
21
|
-
"node_modules",
|
|
22
|
-
"dist"
|
|
23
|
-
],
|
|
24
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { Spec, Dependencies } from "../src/index.js";
|
|
2
|
-
import { strict as assert } from "assert";
|
|
3
|
-
|
|
4
|
-
export class ICharacterTest {
|
|
5
|
-
@Spec()
|
|
6
|
-
async test() {}
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
@Dependencies([ICharacterTest])
|
|
10
|
-
export class TurkishCharacterTest {
|
|
11
|
-
@Spec()
|
|
12
|
-
async check() {
|
|
13
|
-
assert.notEqual(
|
|
14
|
-
this["iCharacterTest"],
|
|
15
|
-
undefined,
|
|
16
|
-
"turkish character test is failed"
|
|
17
|
-
);
|
|
18
|
-
}
|
|
19
|
-
}
|