nole 2.2.1 → 3.0.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/README.md +142 -236
- package/bin/nole.js +44 -42
- 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 +4 -1
- package/dist/dynamic.d.ts.map +1 -1
- package/dist/dynamic.js +35 -11
- 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 +24 -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 +41 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/run.d.ts +7 -6
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +201 -239
- 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 +37 -0
- package/dist/test-wrap.d.ts.map +1 -0
- package/dist/test-wrap.js +30 -0
- package/dist/utils/executor.d.ts +1 -1
- package/dist/utils/executor.js +20 -20
- package/dist/utils/executor.test.d.ts +7 -5
- package/dist/utils/executor.test.d.ts.map +1 -1
- package/dist/utils/executor.test.js +22 -49
- package/dist/utils/time_difference.d.ts +15 -6
- package/dist/utils/time_difference.d.ts.map +1 -1
- package/dist/utils/time_difference.js +22 -13
- package/dist/utils/time_difference.test.d.ts +5 -3
- package/dist/utils/time_difference.test.d.ts.map +1 -1
- package/dist/utils/time_difference.test.js +11 -24
- package/dist/utils/time_factor.d.ts +3 -3
- package/dist/utils/time_factor.d.ts.map +1 -1
- package/dist/utils/time_factor.js +26 -27
- package/dist/utils/time_factor.test.d.ts +5 -3
- package/dist/utils/time_factor.test.d.ts.map +1 -1
- package/dist/utils/time_factor.test.js +27 -42
- package/package.json +11 -8
- package/src/const.ts +11 -0
- package/src/core.ts +89 -0
- package/src/dynamic.ts +43 -1
- package/src/handle/after-each-hooks.ts +41 -0
- package/src/handle/after-hooks.ts +38 -0
- package/src/handle/before-each-hooks.ts +40 -0
- package/src/handle/before-hooks.ts +39 -0
- package/src/handle/cleanup-hooks.ts +55 -0
- package/src/handle/specs.ts +68 -0
- package/src/index.ts +3 -13
- package/src/run.ts +184 -256
- package/src/symbol.ts +1 -0
- package/src/{test.ts → test-wrap.ts} +13 -12
- package/src/utils/executor.test.ts +2 -5
- package/src/utils/executor.ts +1 -1
- package/src/utils/time_difference.test.ts +2 -3
- package/src/utils/time_factor.test.ts +2 -3
- package/src/utils/time_factor.ts +1 -3
- package/test/basic.test.ts +8 -9
- package/test/before.test.ts +14 -27
- package/test/clean-up.test.ts +12 -16
- package/test/dynamic-skip.test.ts +2 -4
- package/test/dynamic.test.ts +23 -8
- package/test/extend.test.ts +43 -0
- package/test/hook.test.ts +9 -10
- package/test/multi-dependency.test.ts +25 -27
- package/test/multiple-uppercased-chars.test.ts +8 -7
- package/test/skip-all.test.ts +4 -13
- package/test/turkish-chars.test.ts +8 -7
- package/tsconfig.json +9 -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/test/before.test.ts
CHANGED
|
@@ -1,54 +1,41 @@
|
|
|
1
1
|
import { strict as assert } from "assert";
|
|
2
|
-
import { Before, Spec, After, Hook, HookType, Dependents } from "../src/index.js";
|
|
3
2
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
alwaysExecuteFirst: AlwaysExecuteFirst;
|
|
3
|
+
import { Test } from "../dist/core.js";
|
|
4
|
+
import { getTest } from "../dist/index.js";
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
export class AlwaysExecuteLater extends Test({
|
|
7
|
+
after: () => [AlwaysExecuteFirst],
|
|
8
|
+
}) {
|
|
9
9
|
test() {
|
|
10
|
-
|
|
10
|
+
const alwaysExecuteFirst = getTest(() => AlwaysExecuteFirst);
|
|
11
|
+
assert(alwaysExecuteFirst.value === 1);
|
|
11
12
|
}
|
|
12
|
-
|
|
13
|
-
@Hook(HookType.CleanUp)
|
|
14
|
-
cleanUp() {}
|
|
15
13
|
}
|
|
16
|
-
|
|
17
|
-
@Dependents(() => [AlwaysExecuteLater])
|
|
18
|
-
export class AlwaysExecuteFirst {
|
|
14
|
+
export class AlwaysExecuteFirst extends Test() {
|
|
19
15
|
value = 0;
|
|
20
16
|
|
|
21
|
-
@Spec()
|
|
22
17
|
test() {
|
|
23
18
|
this.value = 1;
|
|
24
19
|
}
|
|
25
|
-
|
|
26
|
-
@Hook(HookType.CleanUp)
|
|
27
|
-
cleanUp() {}
|
|
28
20
|
}
|
|
29
21
|
|
|
30
|
-
|
|
31
|
-
export class AlwaysExecuteLater2 {
|
|
32
|
-
alwaysExecuteFirst2: AlwaysExecuteFirst2;
|
|
33
|
-
|
|
34
|
-
@Spec()
|
|
22
|
+
export class AlwaysExecuteLater2 extends Test({}) {
|
|
35
23
|
test() {
|
|
36
|
-
|
|
24
|
+
const alwaysExecuteFirst2 = getTest(() => AlwaysExecuteFirst2);
|
|
25
|
+
assert(alwaysExecuteFirst2.value === 1);
|
|
37
26
|
}
|
|
38
27
|
|
|
39
|
-
@Hook(HookType.CleanUp)
|
|
40
28
|
cleanUp() {}
|
|
41
29
|
}
|
|
42
30
|
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
export class AlwaysExecuteFirst2 extends Test({
|
|
32
|
+
before: () => [AlwaysExecuteLater2],
|
|
33
|
+
}) {
|
|
45
34
|
value = 0;
|
|
46
35
|
|
|
47
|
-
@Spec()
|
|
48
36
|
test() {
|
|
49
37
|
this.value = 1;
|
|
50
38
|
}
|
|
51
39
|
|
|
52
|
-
@Hook(HookType.CleanUp)
|
|
53
40
|
cleanUp() {}
|
|
54
41
|
}
|
package/test/clean-up.test.ts
CHANGED
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Test } from "../dist/index";
|
|
2
2
|
|
|
3
|
-
export class CleanUpLayer1Test {
|
|
3
|
+
export class CleanUpLayer1Test extends Test() {
|
|
4
4
|
data: any;
|
|
5
5
|
|
|
6
|
-
@Spec()
|
|
7
6
|
async start() {
|
|
8
7
|
this.data = { somethingImportant: 1 };
|
|
9
8
|
}
|
|
10
9
|
|
|
11
|
-
@Hook(HookType.CleanUp)
|
|
12
10
|
async cleanUp() {
|
|
13
11
|
this.data = null;
|
|
14
12
|
console.log("layer 1 clean up completed!");
|
|
15
13
|
}
|
|
16
14
|
}
|
|
17
15
|
|
|
18
|
-
export class CleanUpLayer2Test {
|
|
16
|
+
export class CleanUpLayer2Test extends Test({
|
|
17
|
+
dependencies: {
|
|
18
|
+
previousLayer: () => CleanUpLayer1Test,
|
|
19
|
+
},
|
|
20
|
+
}) {
|
|
19
21
|
data: any;
|
|
20
22
|
|
|
21
|
-
@Dependency(CleanUpLayer1Test)
|
|
22
|
-
previousLayer!: any;
|
|
23
|
-
|
|
24
|
-
@Spec()
|
|
25
23
|
async start() {
|
|
26
24
|
this.data = { somethingImportant: 1 };
|
|
27
25
|
}
|
|
28
26
|
|
|
29
|
-
@Hook(HookType.CleanUp)
|
|
30
27
|
async cleanUp() {
|
|
31
28
|
this.data = null;
|
|
32
29
|
console.log("layer 2 clean up completed!");
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
32
|
|
|
36
|
-
export class CleanUpLayer3Test {
|
|
33
|
+
export class CleanUpLayer3Test extends Test({
|
|
34
|
+
dependencies: {
|
|
35
|
+
previousLayer: () => CleanUpLayer2Test,
|
|
36
|
+
},
|
|
37
|
+
}) {
|
|
37
38
|
data: any;
|
|
38
39
|
|
|
39
|
-
@Dependency(CleanUpLayer2Test)
|
|
40
|
-
previousLayer!: any;
|
|
41
|
-
|
|
42
|
-
@Spec()
|
|
43
40
|
async start() {
|
|
44
41
|
this.data = { somethingImportant: 1 };
|
|
45
42
|
}
|
|
46
43
|
|
|
47
|
-
@Hook(HookType.CleanUp)
|
|
48
44
|
async cleanUp() {
|
|
49
45
|
this.data = null;
|
|
50
46
|
console.log("layer 3 clean up completed!");
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export class DynamicSkipTest {
|
|
4
|
-
@Spec()
|
|
1
|
+
import { Test, skipTest } from "../dist/index.js";
|
|
2
|
+
export class DynamicSkipTest extends Test() {
|
|
5
3
|
async thisShouldBeSkipped() {
|
|
6
4
|
skipTest("I don't like this test anymore!");
|
|
7
5
|
}
|
package/test/dynamic.test.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
1
|
import * as assert from "assert";
|
|
2
|
-
import {
|
|
2
|
+
import { addTest } from "../dist/dynamic";
|
|
3
|
+
import { Test } from "../dist/index";
|
|
3
4
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
class DynamicTest extends Test() {
|
|
6
|
+
variable = 1;
|
|
7
|
+
|
|
8
|
+
async test() {
|
|
9
|
+
const v = (this.variable = Math.random());
|
|
9
10
|
|
|
10
|
-
|
|
11
|
-
|
|
11
|
+
addTest(
|
|
12
|
+
() =>
|
|
13
|
+
class UltraDynamic extends Test({
|
|
14
|
+
dependencies: { dynamicTest: () => DynamicTest },
|
|
15
|
+
}) {
|
|
16
|
+
async test() {
|
|
17
|
+
assert.equal(
|
|
18
|
+
this.dynamicTest.variable,
|
|
19
|
+
v,
|
|
20
|
+
"The dynamic test variable should be the same as the one in the parent test",
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
);
|
|
12
25
|
}
|
|
13
26
|
}
|
|
27
|
+
|
|
28
|
+
addTest(() => DynamicTest);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import * as assert from "assert";
|
|
2
|
+
import { Test } from "../dist/index.js";
|
|
3
|
+
|
|
4
|
+
class Simple extends Test() {
|
|
5
|
+
variable = 1;
|
|
6
|
+
|
|
7
|
+
async before() {
|
|
8
|
+
console.log("before", this.variable);
|
|
9
|
+
assert.equal(this.variable, 1);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
async after() {
|
|
13
|
+
console.log("after", this.variable);
|
|
14
|
+
assert.equal(this.variable, 2);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async change() {
|
|
18
|
+
this.variable = 2;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
class ExtendedSimple extends Simple {
|
|
23
|
+
async change() {
|
|
24
|
+
this.variable = 3;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
async after() {
|
|
28
|
+
console.log("after", this.variable);
|
|
29
|
+
assert.equal(this.variable, 3);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class ExtendedTest extends Test({
|
|
34
|
+
dependencies: {
|
|
35
|
+
simple: () => Simple,
|
|
36
|
+
extendedSimple: () => ExtendedSimple,
|
|
37
|
+
},
|
|
38
|
+
}) {
|
|
39
|
+
async check() {
|
|
40
|
+
assert.equal(this.simple.variable, 2);
|
|
41
|
+
assert.equal(this.extendedSimple.variable, 3);
|
|
42
|
+
}
|
|
43
|
+
}
|
package/test/hook.test.ts
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
import * as assert from "assert";
|
|
2
|
-
import {
|
|
2
|
+
import { Test } from "../dist/index.js";
|
|
3
3
|
|
|
4
|
-
export class HookTest {
|
|
5
|
-
array:
|
|
4
|
+
export class HookTest extends Test() {
|
|
5
|
+
array: number[] = [1, 2, 3];
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
async pushFourIntoArray() {
|
|
7
|
+
async beforeEach() {
|
|
9
8
|
this.array.push(4);
|
|
10
9
|
}
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
async afterEach() {
|
|
12
|
+
assert.equal(this.array.length, 3);
|
|
13
|
+
}
|
|
14
|
+
|
|
13
15
|
async hasToBe4() {
|
|
14
16
|
assert.equal(this.array.pop(), 4);
|
|
15
17
|
}
|
|
16
18
|
|
|
17
|
-
|
|
18
|
-
@Spec()
|
|
19
|
-
async hasToBe4Again() {
|
|
19
|
+
async skip_hasToBe4Again() {
|
|
20
20
|
assert.equal(this.array.pop(), 4);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
@Spec()
|
|
24
23
|
async hasToBe4AgainButNotSkipped() {
|
|
25
24
|
assert.equal(this.array.pop(), 4);
|
|
26
25
|
}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import * as assert from "assert";
|
|
2
|
-
import { Dependencies, Spec } from "../src/index.js";
|
|
3
|
-
import { BasicTest } from "./basic.test.js";
|
|
4
2
|
import {
|
|
5
3
|
CleanUpLayer1Test,
|
|
6
4
|
CleanUpLayer2Test,
|
|
@@ -8,38 +6,38 @@ import {
|
|
|
8
6
|
} from "./clean-up.test.js";
|
|
9
7
|
import { DynamicSkipTest } from "./dynamic-skip.test.js";
|
|
10
8
|
import { HookTest } from "./hook.test.js";
|
|
9
|
+
import { Test } from "../dist/index.js";
|
|
10
|
+
import { DependencyTest } from "./basic.test.js";
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
CleanUpLayer2Test,
|
|
16
|
-
CleanUpLayer3Test,
|
|
17
|
-
DynamicSkipTest,
|
|
18
|
-
HookTest,
|
|
19
|
-
MultiDependency,
|
|
20
|
-
])
|
|
21
|
-
export class MultiLazyDependency {
|
|
22
|
-
basicTest: BasicTest;
|
|
12
|
+
export class MultiLazyDependency extends Test({
|
|
13
|
+
dependencies: {
|
|
14
|
+
dependencyTest: () => DependencyTest,
|
|
23
15
|
|
|
24
|
-
|
|
16
|
+
c1: () => CleanUpLayer1Test,
|
|
17
|
+
c2: () => CleanUpLayer2Test,
|
|
18
|
+
c3: () => CleanUpLayer3Test,
|
|
19
|
+
c4: () => DynamicSkipTest,
|
|
20
|
+
c5: () => HookTest,
|
|
21
|
+
c6: () => MultiDependency,
|
|
22
|
+
},
|
|
23
|
+
}) {
|
|
25
24
|
test() {
|
|
26
|
-
assert.strictEqual(this.basicTest.variable, 1);
|
|
25
|
+
assert.strictEqual(this.dependencyTest.basicTest.variable, 1);
|
|
27
26
|
}
|
|
28
27
|
}
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
CleanUpLayer2Test,
|
|
34
|
-
CleanUpLayer3Test,
|
|
35
|
-
DynamicSkipTest,
|
|
36
|
-
HookTest,
|
|
37
|
-
])
|
|
38
|
-
export class MultiDependency {
|
|
39
|
-
basicTest: BasicTest;
|
|
29
|
+
export class MultiDependency extends Test({
|
|
30
|
+
dependencies: {
|
|
31
|
+
dependencyTest: () => DependencyTest,
|
|
40
32
|
|
|
41
|
-
|
|
33
|
+
c1: () => CleanUpLayer1Test,
|
|
34
|
+
c2: () => CleanUpLayer2Test,
|
|
35
|
+
c3: () => CleanUpLayer3Test,
|
|
36
|
+
c4: () => DynamicSkipTest,
|
|
37
|
+
c5: () => HookTest,
|
|
38
|
+
},
|
|
39
|
+
}) {
|
|
42
40
|
test() {
|
|
43
|
-
assert.strictEqual(this.basicTest.variable, 1);
|
|
41
|
+
assert.strictEqual(this.dependencyTest.basicTest.variable, 1);
|
|
44
42
|
}
|
|
45
43
|
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { Spec, Dependencies } from "../src/index.js";
|
|
2
1
|
import { strict as assert } from "assert";
|
|
2
|
+
import { Test } from "../dist/index";
|
|
3
3
|
|
|
4
|
-
export class IOTPOTest {
|
|
5
|
-
@Spec()
|
|
4
|
+
export class IOTPOTest extends Test() {
|
|
6
5
|
async test() {}
|
|
7
6
|
}
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
export class MultipleUppercasedCharsTest extends Test({
|
|
9
|
+
dependencies: {
|
|
10
|
+
IOTPOTest: () => IOTPOTest,
|
|
11
|
+
},
|
|
12
|
+
}) {
|
|
12
13
|
async check() {
|
|
13
14
|
assert.notEqual(
|
|
14
15
|
this["IOTPOTest"],
|
|
15
16
|
undefined,
|
|
16
|
-
"turkish character test is failed"
|
|
17
|
+
"turkish character test is failed",
|
|
17
18
|
);
|
|
18
19
|
}
|
|
19
20
|
}
|
package/test/skip-all.test.ts
CHANGED
|
@@ -1,19 +1,10 @@
|
|
|
1
1
|
import * as assert from "assert";
|
|
2
|
-
import {
|
|
3
|
-
import { SkipClass } from "../src/decorators.js";
|
|
2
|
+
import { Test } from "../dist/index";
|
|
4
3
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
export class SkipAllTest extends Test({
|
|
5
|
+
skip: "skip all class",
|
|
6
|
+
}) {
|
|
8
7
|
async wontRun() {}
|
|
9
8
|
|
|
10
|
-
@Skip("won't run too")
|
|
11
|
-
@Spec()
|
|
12
9
|
async wontRunToo() {}
|
|
13
10
|
}
|
|
14
|
-
|
|
15
|
-
@SkipClass()
|
|
16
|
-
export class SkipAllWithoutReason {
|
|
17
|
-
@Spec()
|
|
18
|
-
async wontRun() {}
|
|
19
|
-
}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { Spec, Dependencies } from "../src/index.js";
|
|
2
1
|
import { strict as assert } from "assert";
|
|
2
|
+
import { Test } from "../dist/index";
|
|
3
3
|
|
|
4
|
-
export class ICharacterTest {
|
|
5
|
-
@Spec()
|
|
4
|
+
export class ICharacterTest extends Test() {
|
|
6
5
|
async test() {}
|
|
7
6
|
}
|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
export class TurkishCharacterTest extends Test({
|
|
9
|
+
dependencies: {
|
|
10
|
+
iCharacterTest: () => ICharacterTest,
|
|
11
|
+
},
|
|
12
|
+
}) {
|
|
12
13
|
async check() {
|
|
13
14
|
assert.notEqual(
|
|
14
15
|
this["iCharacterTest"],
|
|
15
16
|
undefined,
|
|
16
|
-
"turkish character test is failed"
|
|
17
|
+
"turkish character test is failed",
|
|
17
18
|
);
|
|
18
19
|
}
|
|
19
20
|
}
|
package/tsconfig.json
CHANGED
|
@@ -1,25 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"compilerOptions": {
|
|
3
3
|
"target": "es2020",
|
|
4
|
-
"module": "
|
|
5
|
-
"moduleResolution": "
|
|
6
|
-
"lib": [
|
|
7
|
-
"es2020",
|
|
8
|
-
"esnext"
|
|
9
|
-
],
|
|
4
|
+
"module": "node16",
|
|
5
|
+
"moduleResolution": "node16",
|
|
6
|
+
"lib": ["es2020", "esnext"],
|
|
10
7
|
"declaration": true,
|
|
11
8
|
"declarationMap": true,
|
|
12
|
-
"sourceMap": true,
|
|
13
9
|
"outDir": "dist",
|
|
14
|
-
"
|
|
15
|
-
"
|
|
16
|
-
"
|
|
10
|
+
"strictNullChecks": true,
|
|
11
|
+
"inlineSourceMap": true,
|
|
12
|
+
"verbatimModuleSyntax": true
|
|
17
13
|
},
|
|
18
|
-
"include": [
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"exclude": [
|
|
22
|
-
"node_modules",
|
|
23
|
-
"dist"
|
|
24
|
-
],
|
|
25
|
-
}
|
|
14
|
+
"include": ["src/**/*.ts"],
|
|
15
|
+
"exclude": ["node_modules", "dist"]
|
|
16
|
+
}
|
package/dist/data.d.ts
DELETED
package/dist/data.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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
DELETED
package/dist/data.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAa,CAAC,CAAC;AACzC,CAAC"}
|
package/dist/decorators.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { HookType, ClassDefition } from "./test.js";
|
|
2
|
-
export declare function Spec(timeout?: number): MethodDecorator;
|
|
3
|
-
export declare function Dependency<T>(dependency: ClassDefition<T>): PropertyDecorator;
|
|
4
|
-
export declare function Dependencies(dependencies: (() => ClassDefition<any>[]) | ClassDefition<any>[]): ClassDecorator;
|
|
5
|
-
export declare function Dependents(dependents: (() => ClassDefition<any>[]) | ClassDefition<any>[]): ClassDecorator;
|
|
6
|
-
export declare function Hook(type: HookType, timeout?: number): MethodDecorator;
|
|
7
|
-
export declare function Skip(reason?: string): MethodDecorator;
|
|
8
|
-
export declare function SkipClass(reason?: string): ClassDecorator;
|
|
9
|
-
//# sourceMappingURL=decorators.d.ts.map
|
package/dist/decorators.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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;AAMD,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAI7E;AAMD,wBAAgB,YAAY,CAC1B,YAAY,EAAE,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,GAChE,cAAc,CAgBhB;AAMD,wBAAgB,UAAU,CACxB,UAAU,EAAE,CAAC,MAAM,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,GAC9D,cAAc,CAgBhB;AAOD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5E;AAMD,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
DELETED
|
@@ -1,118 +0,0 @@
|
|
|
1
|
-
import { HashMap } from "./data.js";
|
|
2
|
-
import { Test } from "./test.js";
|
|
3
|
-
import camelcase from "camelcase";
|
|
4
|
-
export function Spec(timeout = 5000) {
|
|
5
|
-
return function (target, propertyKey) {
|
|
6
|
-
DeclareSpecForTestClass(target, propertyKey, timeout);
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
export function Dependency(dependency) {
|
|
10
|
-
return function (target, propertyKey) {
|
|
11
|
-
DeclareDependencyForTestClass(target, propertyKey, dependency);
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
export function Dependencies(dependencies) {
|
|
15
|
-
return function (target) {
|
|
16
|
-
setImmediate(() => {
|
|
17
|
-
const value = isFunction(dependencies) ? dependencies() : dependencies;
|
|
18
|
-
for (const dependency of value) {
|
|
19
|
-
const propertyKey = validPropertyName(dependency.name);
|
|
20
|
-
DeclareDependencyForTestClass({ constructor: target }, propertyKey, dependency);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export function Dependents(dependents) {
|
|
26
|
-
return function (target) {
|
|
27
|
-
setImmediate(() => {
|
|
28
|
-
const value = isFunction(dependents) ? dependents() : dependents;
|
|
29
|
-
for (const dependent of value) {
|
|
30
|
-
const propertyKey = validPropertyName(target.name);
|
|
31
|
-
DeclareDependencyForTestClass({ constructor: dependent }, propertyKey, target);
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
export function Hook(type, timeout = 5000) {
|
|
37
|
-
return function (target, propertyKey) {
|
|
38
|
-
DeclareHookForTestClass(target, propertyKey, type, timeout);
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export function Skip(reason) {
|
|
42
|
-
return function (target, propertyKey) {
|
|
43
|
-
DeclareAsSkipped(target, propertyKey, reason ? reason : "");
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
export function SkipClass(reason) {
|
|
47
|
-
return function (target) {
|
|
48
|
-
DeclareAsSkippedClass(target, reason ? reason : "");
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
function GetTestInstanceOfTarget(target) {
|
|
52
|
-
let instance = HashMap().get(target);
|
|
53
|
-
if (!instance) {
|
|
54
|
-
HashMap().set(target, (instance = new Test(target)));
|
|
55
|
-
}
|
|
56
|
-
return instance;
|
|
57
|
-
}
|
|
58
|
-
function DeclareDependencyForTestClass(protoOfTarget, propertyKey, dependency) {
|
|
59
|
-
const target = protoOfTarget.constructor;
|
|
60
|
-
const test = GetTestInstanceOfTarget(target);
|
|
61
|
-
const depTest = GetTestInstanceOfTarget(dependency);
|
|
62
|
-
test.dependencies.push({ propertyKey, dependency: depTest });
|
|
63
|
-
depTest.dependents.push(test);
|
|
64
|
-
}
|
|
65
|
-
function DeclareSpecForTestClass(protoOfTarget, propertyKey, timeout) {
|
|
66
|
-
const target = protoOfTarget.constructor;
|
|
67
|
-
const test = GetTestInstanceOfTarget(target);
|
|
68
|
-
if (test.hooks.has(propertyKey)) {
|
|
69
|
-
throw new Error("@Hook cannot be used with @Spec! Test: ");
|
|
70
|
-
}
|
|
71
|
-
if (test.specs.has(propertyKey)) {
|
|
72
|
-
throw new Error("Multiple @Spec for a single method is prohibited");
|
|
73
|
-
}
|
|
74
|
-
test.specs.set(propertyKey, { timeout });
|
|
75
|
-
}
|
|
76
|
-
function DeclareHookForTestClass(protoOfTarget, propertyKey, hookType, timeout) {
|
|
77
|
-
const target = protoOfTarget.constructor;
|
|
78
|
-
const test = GetTestInstanceOfTarget(target);
|
|
79
|
-
if (test.specs.has(propertyKey)) {
|
|
80
|
-
throw new Error("@Hook cannot be used with @Spec");
|
|
81
|
-
}
|
|
82
|
-
if (test.hooks.has(propertyKey)) {
|
|
83
|
-
throw new Error("Multiple @Hook for a single method is prohibited");
|
|
84
|
-
}
|
|
85
|
-
test.hooks.set(propertyKey, { type: hookType, timeout });
|
|
86
|
-
}
|
|
87
|
-
function DeclareAsSkipped(protoOfTarget, propertyKey, reason) {
|
|
88
|
-
const target = protoOfTarget.constructor;
|
|
89
|
-
const test = GetTestInstanceOfTarget(target);
|
|
90
|
-
if (test.skip.has(propertyKey)) {
|
|
91
|
-
const obj = test.skip.get(propertyKey);
|
|
92
|
-
if (reason) {
|
|
93
|
-
obj.reason = (obj.reason ? obj.reason + ", " : "") + reason;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
test.skip.set(propertyKey, { reason });
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
function DeclareAsSkippedClass(target, reason) {
|
|
101
|
-
const test = GetTestInstanceOfTarget(target);
|
|
102
|
-
test.skipClass = { reason };
|
|
103
|
-
}
|
|
104
|
-
function validPropertyName(name) {
|
|
105
|
-
return camelcase(name, {
|
|
106
|
-
preserveConsecutiveUppercase: process.env.NOLE_PRESERVE_CONSECUTIVE_UPPERCASE == undefined
|
|
107
|
-
? true
|
|
108
|
-
: process.env.NOLE_PRESERVE_CONSECUTIVE_UPPERCASE === "true",
|
|
109
|
-
pascalCase: process.env.NOLE_PASCALCASE == undefined
|
|
110
|
-
? false
|
|
111
|
-
: process.env.NOLE_PASCALCASE === "true",
|
|
112
|
-
locale: "en-US",
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
function isFunction(thing) {
|
|
116
|
-
return typeof thing !== "object" && typeof thing === "function";
|
|
117
|
-
}
|
|
118
|
-
//# sourceMappingURL=decorators.js.map
|
package/dist/decorators.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
|
package/dist/dynamic.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,YAAY,IAAI,KAAK,EACrB,UAAU,IAAI,MAAM,EACpB,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/run.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
|