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.
Files changed (107) hide show
  1. package/.github/workflows/ci.yaml +34 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +474 -388
  4. package/bin/nole.js +145 -111
  5. package/dist/const.d.ts +8 -0
  6. package/dist/const.d.ts.map +1 -0
  7. package/dist/const.js +9 -0
  8. package/dist/core.d.ts +22 -0
  9. package/dist/core.d.ts.map +1 -0
  10. package/dist/core.js +56 -0
  11. package/dist/dynamic.d.ts +5 -1
  12. package/dist/dynamic.d.ts.map +1 -1
  13. package/dist/dynamic.js +35 -1
  14. package/dist/handle/after-each-hooks.d.ts +3 -0
  15. package/dist/handle/after-each-hooks.d.ts.map +1 -0
  16. package/dist/handle/after-each-hooks.js +26 -0
  17. package/dist/handle/after-hooks.d.ts +3 -0
  18. package/dist/handle/after-hooks.d.ts.map +1 -0
  19. package/dist/handle/after-hooks.js +24 -0
  20. package/dist/handle/before-each-hooks.d.ts +3 -0
  21. package/dist/handle/before-each-hooks.d.ts.map +1 -0
  22. package/dist/handle/before-each-hooks.js +26 -0
  23. package/dist/handle/before-hooks.d.ts +3 -0
  24. package/dist/handle/before-hooks.d.ts.map +1 -0
  25. package/dist/handle/before-hooks.js +34 -0
  26. package/dist/handle/cleanup-hooks.d.ts +3 -0
  27. package/dist/handle/cleanup-hooks.d.ts.map +1 -0
  28. package/dist/handle/cleanup-hooks.js +34 -0
  29. package/dist/handle/specs.d.ts +3 -0
  30. package/dist/handle/specs.d.ts.map +1 -0
  31. package/dist/handle/specs.js +50 -0
  32. package/dist/index.d.ts +3 -3
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +4 -4
  35. package/dist/pipeline.test.d.ts +7 -0
  36. package/dist/pipeline.test.d.ts.map +1 -0
  37. package/dist/pipeline.test.js +124 -0
  38. package/dist/run.d.ts +7 -6
  39. package/dist/run.d.ts.map +1 -1
  40. package/dist/run.js +166 -196
  41. package/dist/symbol.d.ts +2 -0
  42. package/dist/symbol.d.ts.map +1 -0
  43. package/dist/symbol.js +2 -0
  44. package/dist/test-wrap.d.ts +38 -0
  45. package/dist/test-wrap.d.ts.map +1 -0
  46. package/dist/test-wrap.js +30 -0
  47. package/dist/utils/executor.js +1 -1
  48. package/dist/utils/executor.test.d.ts +3 -1
  49. package/dist/utils/executor.test.d.ts.map +1 -1
  50. package/dist/utils/executor.test.js +3 -30
  51. package/dist/utils/time_difference.d.ts +9 -0
  52. package/dist/utils/time_difference.d.ts.map +1 -1
  53. package/dist/utils/time_difference.js +10 -1
  54. package/dist/utils/time_difference.test.d.ts +3 -1
  55. package/dist/utils/time_difference.test.d.ts.map +1 -1
  56. package/dist/utils/time_difference.test.js +5 -18
  57. package/dist/utils/time_factor.d.ts.map +1 -1
  58. package/dist/utils/time_factor.js +2 -3
  59. package/dist/utils/time_factor.test.d.ts +3 -1
  60. package/dist/utils/time_factor.test.d.ts.map +1 -1
  61. package/dist/utils/time_factor.test.js +3 -18
  62. package/package.json +58 -58
  63. package/tsconfig.json +18 -18
  64. package/dist/data.d.ts +0 -3
  65. package/dist/data.d.ts.map +0 -1
  66. package/dist/data.js +0 -9
  67. package/dist/data.js.map +0 -1
  68. package/dist/decorators.d.ts +0 -9
  69. package/dist/decorators.d.ts.map +0 -1
  70. package/dist/decorators.js +0 -118
  71. package/dist/decorators.js.map +0 -1
  72. package/dist/dynamic.js.map +0 -1
  73. package/dist/index.js.map +0 -1
  74. package/dist/run.js.map +0 -1
  75. package/dist/test.d.ts +0 -39
  76. package/dist/test.d.ts.map +0 -1
  77. package/dist/test.js +0 -25
  78. package/dist/test.js.map +0 -1
  79. package/dist/utils/executor.js.map +0 -1
  80. package/dist/utils/executor.test.js.map +0 -1
  81. package/dist/utils/time_difference.js.map +0 -1
  82. package/dist/utils/time_difference.test.js.map +0 -1
  83. package/dist/utils/time_factor.js.map +0 -1
  84. package/dist/utils/time_factor.test.js.map +0 -1
  85. package/src/data.ts +0 -13
  86. package/src/decorators.ts +0 -208
  87. package/src/dynamic.ts +0 -11
  88. package/src/index.ts +0 -13
  89. package/src/run.ts +0 -331
  90. package/src/test.ts +0 -47
  91. package/src/utils/executor.test.ts +0 -27
  92. package/src/utils/executor.ts +0 -22
  93. package/src/utils/time_difference.test.ts +0 -12
  94. package/src/utils/time_difference.ts +0 -26
  95. package/src/utils/time_factor.test.ts +0 -29
  96. package/src/utils/time_factor.ts +0 -35
  97. package/test/basic.test.ts +0 -24
  98. package/test/before.test.ts +0 -54
  99. package/test/clean-up.test.ts +0 -52
  100. package/test/dynamic-skip.test.ts +0 -8
  101. package/test/dynamic.test.ts +0 -13
  102. package/test/hook.test.ts +0 -27
  103. package/test/multi-dependency.test.ts +0 -45
  104. package/test/multiple-uppercased-chars.test.ts +0 -19
  105. package/test/skip-all.test.ts +0 -19
  106. package/test/tsconfig.json +0 -24
  107. 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
- }
@@ -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
- }
@@ -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
- }
@@ -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
- }
@@ -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
- }
@@ -1,8 +0,0 @@
1
- import { skipTest, Spec } from "../src/index.js";
2
-
3
- export class DynamicSkipTest {
4
- @Spec()
5
- async thisShouldBeSkipped() {
6
- skipTest("I don't like this test anymore!");
7
- }
8
- }
@@ -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
- }
@@ -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
- }
@@ -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
- }