nole 3.0.0 → 3.2.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 (84) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +514 -294
  3. package/bin/nole.js +145 -110
  4. package/dist/cjs/const.js +45 -0
  5. package/dist/cjs/core.js +61 -0
  6. package/dist/cjs/dynamic.js +56 -0
  7. package/dist/cjs/handle/after-each-hooks.js +29 -0
  8. package/dist/cjs/handle/after-hooks.js +27 -0
  9. package/dist/cjs/handle/before-each-hooks.js +29 -0
  10. package/dist/cjs/handle/before-hooks.js +37 -0
  11. package/dist/cjs/handle/cleanup-hooks.js +37 -0
  12. package/dist/cjs/handle/specs.js +52 -0
  13. package/dist/cjs/index.js +14 -0
  14. package/dist/cjs/package.json +1 -0
  15. package/dist/cjs/run.js +216 -0
  16. package/dist/cjs/symbol.js +6 -0
  17. package/dist/cjs/test-wrap.js +33 -0
  18. package/dist/cjs/utils/executor.js +23 -0
  19. package/dist/cjs/utils/time_difference.js +26 -0
  20. package/dist/cjs/utils/time_factor.js +31 -0
  21. package/dist/core.d.ts +3 -1
  22. package/dist/core.d.ts.map +1 -1
  23. package/dist/core.js +2 -2
  24. package/dist/dynamic.d.ts +2 -0
  25. package/dist/dynamic.d.ts.map +1 -1
  26. package/dist/dynamic.js +16 -1
  27. package/dist/handle/before-hooks.d.ts.map +1 -1
  28. package/dist/handle/before-hooks.js +12 -2
  29. package/dist/handle/specs.d.ts.map +1 -1
  30. package/dist/handle/specs.js +12 -3
  31. package/dist/index.d.ts +1 -1
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +2 -2
  34. package/dist/run.d.ts.map +1 -1
  35. package/dist/run.js +16 -7
  36. package/dist/symbol.d.ts +1 -0
  37. package/dist/symbol.d.ts.map +1 -1
  38. package/dist/symbol.js +3 -2
  39. package/dist/test-wrap.d.ts +1 -0
  40. package/dist/test-wrap.d.ts.map +1 -1
  41. package/dist/test-wrap.js +1 -1
  42. package/dist/utils/time_difference.d.ts.map +1 -1
  43. package/package.json +68 -57
  44. package/dist/utils/executor.test.d.ts +0 -8
  45. package/dist/utils/executor.test.d.ts.map +0 -1
  46. package/dist/utils/executor.test.js +0 -22
  47. package/dist/utils/time_difference.test.d.ts +0 -6
  48. package/dist/utils/time_difference.test.d.ts.map +0 -1
  49. package/dist/utils/time_difference.test.js +0 -11
  50. package/dist/utils/time_factor.test.d.ts +0 -6
  51. package/dist/utils/time_factor.test.d.ts.map +0 -1
  52. package/dist/utils/time_factor.test.js +0 -27
  53. package/src/const.ts +0 -11
  54. package/src/core.ts +0 -89
  55. package/src/dynamic.ts +0 -53
  56. package/src/handle/after-each-hooks.ts +0 -41
  57. package/src/handle/after-hooks.ts +0 -38
  58. package/src/handle/before-each-hooks.ts +0 -40
  59. package/src/handle/before-hooks.ts +0 -39
  60. package/src/handle/cleanup-hooks.ts +0 -55
  61. package/src/handle/specs.ts +0 -68
  62. package/src/index.ts +0 -3
  63. package/src/run.ts +0 -259
  64. package/src/symbol.ts +0 -1
  65. package/src/test-wrap.ts +0 -48
  66. package/src/utils/executor.test.ts +0 -24
  67. package/src/utils/executor.ts +0 -22
  68. package/src/utils/time_difference.test.ts +0 -11
  69. package/src/utils/time_difference.ts +0 -26
  70. package/src/utils/time_factor.test.ts +0 -28
  71. package/src/utils/time_factor.ts +0 -33
  72. package/test/basic.test.ts +0 -23
  73. package/test/before.test.ts +0 -41
  74. package/test/clean-up.test.ts +0 -48
  75. package/test/dynamic-skip.test.ts +0 -6
  76. package/test/dynamic.test.ts +0 -28
  77. package/test/extend.test.ts +0 -43
  78. package/test/hook.test.ts +0 -26
  79. package/test/multi-dependency.test.ts +0 -43
  80. package/test/multiple-uppercased-chars.test.ts +0 -20
  81. package/test/skip-all.test.ts +0 -10
  82. package/test/tsconfig.json +0 -24
  83. package/test/turkish-chars.test.ts +0 -20
  84. package/tsconfig.json +0 -16
@@ -1,28 +0,0 @@
1
- import { Test } from "../index.js";
2
- import { Delay, TimeFactor } from "./time_factor.js";
3
-
4
- export class TimeFactorTest extends Test() {
5
- async evaluate() {
6
- await Delay(1);
7
-
8
- for (const n of [
9
- 100,
10
- 1000,
11
- 60 * 1000,
12
- 120 * 1000,
13
- 60 * 60 * 1000,
14
- 65 * 60 * 1000,
15
- 25 * 60 * 60 * 1000,
16
- ]) {
17
- TimeFactor(n / 1000, n);
18
- TimeFactor(n / 500, n);
19
- TimeFactor(n / 10, n);
20
- TimeFactor(n / 6, n);
21
- TimeFactor(n / 4, n);
22
- TimeFactor(n / 2, n);
23
- TimeFactor(n / 1.5, n);
24
- TimeFactor(n, n);
25
- TimeFactor(n * 2, n);
26
- }
27
- }
28
- }
@@ -1,33 +0,0 @@
1
- import { colors } from "../const.js";
2
-
3
- export function TimeFactor(diff: number, timeout: number) {
4
- if (diff < timeout / 5) {
5
- return colors.green(TimeResolve(diff).padStart(9, " "));
6
- }
7
-
8
- if (diff < timeout / 2) {
9
- return colors.yellow(TimeResolve(diff).padStart(9, " "));
10
- }
11
-
12
- return colors.red(TimeResolve(diff).padStart(9, " "));
13
- }
14
-
15
- export function TimeResolve(ms: number) {
16
- if (ms < 1000) {
17
- return ((ms * 100) | 0) / 100 + " ms";
18
- }
19
-
20
- if (ms < 60 * 1000) {
21
- return ((ms / 10) | 0) / 100 + " s";
22
- }
23
-
24
- if (ms < 60 * 60 * 1000) {
25
- return ((ms / 600) | 0) / 100 + " m";
26
- }
27
-
28
- return ((ms / 36000) | 0) / 100 + " h";
29
- }
30
-
31
- export function Delay(ms: number): Promise<void> {
32
- return new Promise((resolve) => setTimeout(resolve, ms));
33
- }
@@ -1,23 +0,0 @@
1
- import { Test } from "../dist/index.js";
2
-
3
- class BasicTest extends Test({ timeout: 750 }) {
4
- variable = 1;
5
-
6
- async checkEqual() {
7
- await new Promise((resolve) => {
8
- setTimeout(resolve, 500);
9
- });
10
- }
11
- }
12
-
13
- export class DependencyTest extends Test({
14
- dependencies: {
15
- basicTest: () => BasicTest,
16
- },
17
- }) {
18
- async check() {
19
- if (this.basicTest.variable !== 1) {
20
- throw new Error("Dependency test failed!");
21
- }
22
- }
23
- }
@@ -1,41 +0,0 @@
1
- import { strict as assert } from "assert";
2
-
3
- import { Test } from "../dist/core.js";
4
- import { getTest } from "../dist/index.js";
5
-
6
- export class AlwaysExecuteLater extends Test({
7
- after: () => [AlwaysExecuteFirst],
8
- }) {
9
- test() {
10
- const alwaysExecuteFirst = getTest(() => AlwaysExecuteFirst);
11
- assert(alwaysExecuteFirst.value === 1);
12
- }
13
- }
14
- export class AlwaysExecuteFirst extends Test() {
15
- value = 0;
16
-
17
- test() {
18
- this.value = 1;
19
- }
20
- }
21
-
22
- export class AlwaysExecuteLater2 extends Test({}) {
23
- test() {
24
- const alwaysExecuteFirst2 = getTest(() => AlwaysExecuteFirst2);
25
- assert(alwaysExecuteFirst2.value === 1);
26
- }
27
-
28
- cleanUp() {}
29
- }
30
-
31
- export class AlwaysExecuteFirst2 extends Test({
32
- before: () => [AlwaysExecuteLater2],
33
- }) {
34
- value = 0;
35
-
36
- test() {
37
- this.value = 1;
38
- }
39
-
40
- cleanUp() {}
41
- }
@@ -1,48 +0,0 @@
1
- import { Test } from "../dist/index";
2
-
3
- export class CleanUpLayer1Test extends Test() {
4
- data: any;
5
-
6
- async start() {
7
- this.data = { somethingImportant: 1 };
8
- }
9
-
10
- async cleanUp() {
11
- this.data = null;
12
- console.log("layer 1 clean up completed!");
13
- }
14
- }
15
-
16
- export class CleanUpLayer2Test extends Test({
17
- dependencies: {
18
- previousLayer: () => CleanUpLayer1Test,
19
- },
20
- }) {
21
- data: any;
22
-
23
- async start() {
24
- this.data = { somethingImportant: 1 };
25
- }
26
-
27
- async cleanUp() {
28
- this.data = null;
29
- console.log("layer 2 clean up completed!");
30
- }
31
- }
32
-
33
- export class CleanUpLayer3Test extends Test({
34
- dependencies: {
35
- previousLayer: () => CleanUpLayer2Test,
36
- },
37
- }) {
38
- data: any;
39
-
40
- async start() {
41
- this.data = { somethingImportant: 1 };
42
- }
43
-
44
- async cleanUp() {
45
- this.data = null;
46
- console.log("layer 3 clean up completed!");
47
- }
48
- }
@@ -1,6 +0,0 @@
1
- import { Test, skipTest } from "../dist/index.js";
2
- export class DynamicSkipTest extends Test() {
3
- async thisShouldBeSkipped() {
4
- skipTest("I don't like this test anymore!");
5
- }
6
- }
@@ -1,28 +0,0 @@
1
- import * as assert from "assert";
2
- import { addTest } from "../dist/dynamic";
3
- import { Test } from "../dist/index";
4
-
5
- class DynamicTest extends Test() {
6
- variable = 1;
7
-
8
- async test() {
9
- const v = (this.variable = Math.random());
10
-
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
- );
25
- }
26
- }
27
-
28
- addTest(() => DynamicTest);
@@ -1,43 +0,0 @@
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 DELETED
@@ -1,26 +0,0 @@
1
- import * as assert from "assert";
2
- import { Test } from "../dist/index.js";
3
-
4
- export class HookTest extends Test() {
5
- array: number[] = [1, 2, 3];
6
-
7
- async beforeEach() {
8
- this.array.push(4);
9
- }
10
-
11
- async afterEach() {
12
- assert.equal(this.array.length, 3);
13
- }
14
-
15
- async hasToBe4() {
16
- assert.equal(this.array.pop(), 4);
17
- }
18
-
19
- async skip_hasToBe4Again() {
20
- assert.equal(this.array.pop(), 4);
21
- }
22
-
23
- async hasToBe4AgainButNotSkipped() {
24
- assert.equal(this.array.pop(), 4);
25
- }
26
- }
@@ -1,43 +0,0 @@
1
- import * as assert from "assert";
2
- import {
3
- CleanUpLayer1Test,
4
- CleanUpLayer2Test,
5
- CleanUpLayer3Test,
6
- } from "./clean-up.test.js";
7
- import { DynamicSkipTest } from "./dynamic-skip.test.js";
8
- import { HookTest } from "./hook.test.js";
9
- import { Test } from "../dist/index.js";
10
- import { DependencyTest } from "./basic.test.js";
11
-
12
- export class MultiLazyDependency extends Test({
13
- dependencies: {
14
- dependencyTest: () => DependencyTest,
15
-
16
- c1: () => CleanUpLayer1Test,
17
- c2: () => CleanUpLayer2Test,
18
- c3: () => CleanUpLayer3Test,
19
- c4: () => DynamicSkipTest,
20
- c5: () => HookTest,
21
- c6: () => MultiDependency,
22
- },
23
- }) {
24
- test() {
25
- assert.strictEqual(this.dependencyTest.basicTest.variable, 1);
26
- }
27
- }
28
-
29
- export class MultiDependency extends Test({
30
- dependencies: {
31
- dependencyTest: () => DependencyTest,
32
-
33
- c1: () => CleanUpLayer1Test,
34
- c2: () => CleanUpLayer2Test,
35
- c3: () => CleanUpLayer3Test,
36
- c4: () => DynamicSkipTest,
37
- c5: () => HookTest,
38
- },
39
- }) {
40
- test() {
41
- assert.strictEqual(this.dependencyTest.basicTest.variable, 1);
42
- }
43
- }
@@ -1,20 +0,0 @@
1
- import { strict as assert } from "assert";
2
- import { Test } from "../dist/index";
3
-
4
- export class IOTPOTest extends Test() {
5
- async test() {}
6
- }
7
-
8
- export class MultipleUppercasedCharsTest extends Test({
9
- dependencies: {
10
- IOTPOTest: () => IOTPOTest,
11
- },
12
- }) {
13
- async check() {
14
- assert.notEqual(
15
- this["IOTPOTest"],
16
- undefined,
17
- "turkish character test is failed",
18
- );
19
- }
20
- }
@@ -1,10 +0,0 @@
1
- import * as assert from "assert";
2
- import { Test } from "../dist/index";
3
-
4
- export class SkipAllTest extends Test({
5
- skip: "skip all class",
6
- }) {
7
- async wontRun() {}
8
-
9
- async wontRunToo() {}
10
- }
@@ -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,20 +0,0 @@
1
- import { strict as assert } from "assert";
2
- import { Test } from "../dist/index";
3
-
4
- export class ICharacterTest extends Test() {
5
- async test() {}
6
- }
7
-
8
- export class TurkishCharacterTest extends Test({
9
- dependencies: {
10
- iCharacterTest: () => ICharacterTest,
11
- },
12
- }) {
13
- async check() {
14
- assert.notEqual(
15
- this["iCharacterTest"],
16
- undefined,
17
- "turkish character test is failed",
18
- );
19
- }
20
- }
package/tsconfig.json DELETED
@@ -1,16 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2020",
4
- "module": "node16",
5
- "moduleResolution": "node16",
6
- "lib": ["es2020", "esnext"],
7
- "declaration": true,
8
- "declarationMap": true,
9
- "outDir": "dist",
10
- "strictNullChecks": true,
11
- "inlineSourceMap": true,
12
- "verbatimModuleSyntax": true
13
- },
14
- "include": ["src/**/*.ts"],
15
- "exclude": ["node_modules", "dist"]
16
- }