nole 3.0.0 → 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 (62) hide show
  1. package/.github/workflows/ci.yaml +34 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +474 -294
  4. package/bin/nole.js +145 -110
  5. package/dist/core.js +1 -1
  6. package/dist/dynamic.d.ts +1 -0
  7. package/dist/dynamic.d.ts.map +1 -1
  8. package/dist/dynamic.js +11 -1
  9. package/dist/handle/before-hooks.d.ts.map +1 -1
  10. package/dist/handle/before-hooks.js +12 -2
  11. package/dist/handle/specs.d.ts.map +1 -1
  12. package/dist/handle/specs.js +12 -3
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -2
  16. package/dist/pipeline.test.d.ts +7 -0
  17. package/dist/pipeline.test.d.ts.map +1 -0
  18. package/dist/pipeline.test.js +124 -0
  19. package/dist/run.d.ts.map +1 -1
  20. package/dist/run.js +14 -6
  21. package/dist/symbol.d.ts.map +1 -1
  22. package/dist/symbol.js +2 -2
  23. package/dist/test-wrap.d.ts +1 -0
  24. package/dist/test-wrap.d.ts.map +1 -1
  25. package/dist/test-wrap.js +1 -1
  26. package/dist/utils/executor.test.d.ts.map +1 -1
  27. package/dist/utils/time_difference.d.ts.map +1 -1
  28. package/dist/utils/time_difference.test.d.ts.map +1 -1
  29. package/dist/utils/time_factor.test.d.ts.map +1 -1
  30. package/package.json +57 -57
  31. package/tsconfig.json +18 -16
  32. package/src/const.ts +0 -11
  33. package/src/core.ts +0 -89
  34. package/src/dynamic.ts +0 -53
  35. package/src/handle/after-each-hooks.ts +0 -41
  36. package/src/handle/after-hooks.ts +0 -38
  37. package/src/handle/before-each-hooks.ts +0 -40
  38. package/src/handle/before-hooks.ts +0 -39
  39. package/src/handle/cleanup-hooks.ts +0 -55
  40. package/src/handle/specs.ts +0 -68
  41. package/src/index.ts +0 -3
  42. package/src/run.ts +0 -259
  43. package/src/symbol.ts +0 -1
  44. package/src/test-wrap.ts +0 -48
  45. package/src/utils/executor.test.ts +0 -24
  46. package/src/utils/executor.ts +0 -22
  47. package/src/utils/time_difference.test.ts +0 -11
  48. package/src/utils/time_difference.ts +0 -26
  49. package/src/utils/time_factor.test.ts +0 -28
  50. package/src/utils/time_factor.ts +0 -33
  51. package/test/basic.test.ts +0 -23
  52. package/test/before.test.ts +0 -41
  53. package/test/clean-up.test.ts +0 -48
  54. package/test/dynamic-skip.test.ts +0 -6
  55. package/test/dynamic.test.ts +0 -28
  56. package/test/extend.test.ts +0 -43
  57. package/test/hook.test.ts +0 -26
  58. package/test/multi-dependency.test.ts +0 -43
  59. package/test/multiple-uppercased-chars.test.ts +0 -20
  60. package/test/skip-all.test.ts +0 -10
  61. package/test/tsconfig.json +0 -24
  62. package/test/turkish-chars.test.ts +0 -20
package/bin/nole.js CHANGED
@@ -1,110 +1,145 @@
1
- #!/usr/bin/env node
2
-
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 { register } from "tsx/esm/api";
9
- const unregister = register();
10
-
11
- import { TimeDifference } from "../dist/utils/time_difference.js";
12
- import { Delay, TimeResolve } from "../dist/utils/time_factor.js";
13
- import { TEST_CLASS_KEY } from "../dist/symbol.js";
14
- import { ManualRun } from "../dist/run.js";
15
-
16
- const pkg = JSON.parse(
17
- fs.readFileSync(new URL("../package.json", import.meta.url)).toString(),
18
- );
19
-
20
- program.usage("<glob> ...").version(pkg.version).parse(process.argv);
21
-
22
- if (!program.args.length) {
23
- program.help();
24
- } else {
25
- let time = TimeDifference.begin();
26
-
27
- Promise.all(program.args.map((arg) => glob(arg)))
28
- .then(async (list) => {
29
- const fileList = [];
30
-
31
- for (const item of list) {
32
- while (item.length) {
33
- fileList.push(path.resolve(process.cwd(), item.pop()));
34
- }
35
- }
36
-
37
- if (!fileList.length) {
38
- failed("0 files found");
39
- process.exit(1);
40
- }
41
-
42
- const file = time.end();
43
-
44
- const tests = new Set();
45
-
46
- for (const file of fileList) {
47
- const module = await import(`file://${file}`);
48
-
49
- for (const key in module) {
50
- const value = module[key];
51
-
52
- if (!value) {
53
- continue;
54
- }
55
-
56
- if (!value[TEST_CLASS_KEY]) {
57
- continue;
58
- }
59
-
60
- tests.add(value);
61
- }
62
- }
63
-
64
- const prop = time.end();
65
-
66
- let dependencyResolveWaitPeriod = +process.env.NOLE_WAIT_PERIOD;
67
-
68
- if (
69
- isNaN(dependencyResolveWaitPeriod) ||
70
- dependencyResolveWaitPeriod < 0
71
- ) {
72
- dependencyResolveWaitPeriod = 500;
73
- }
74
-
75
- console.log("Nole tests v" + pkg.version);
76
-
77
- try {
78
- await Delay(dependencyResolveWaitPeriod);
79
-
80
- try {
81
- await ManualRun(tests);
82
- } catch (e) {
83
- if (e.message === "No specs found") {
84
- log(`${FAILED_TEXT} no specs found`);
85
- }
86
- throw e;
87
- }
88
-
89
- console.log(" discover: %s", TimeResolve(file));
90
- console.log(" resolve: %s", TimeResolve(prop - file));
91
- console.log(
92
- " tests: %s",
93
- TimeResolve(time.end() - prop - dependencyResolveWaitPeriod),
94
- );
95
- process.exit(0);
96
- } catch (e) {
97
- console.error(e);
98
- process.exit(1);
99
- }
100
- })
101
- .catch((e) => {
102
- failed("Error occurred on resolving files");
103
- console.error(e.stack || e);
104
- process.exit(1);
105
- });
106
- }
107
-
108
- function failed(message) {
109
- console.error(colors.bold(colors.red(" (failed) " + message)));
110
- }
1
+ #!/usr/bin/env node
2
+
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 { register } from "tsx/esm/api";
9
+ import { require as tsxRequire } from "tsx/cjs/api";
10
+ const unregister = register();
11
+
12
+ import { TimeDifference } from "../dist/utils/time_difference.js";
13
+ import { Delay, TimeResolve } from "../dist/utils/time_factor.js";
14
+ import { TEST_CLASS_KEY } from "../dist/symbol.js";
15
+ import { ManualRun } from "../dist/run.js";
16
+
17
+ const pkg = JSON.parse(
18
+ fs.readFileSync(new URL("../package.json", import.meta.url)).toString(),
19
+ );
20
+
21
+ program
22
+ .usage("<glob> ...")
23
+ .allowExcessArguments(true)
24
+ .version(pkg.version)
25
+ .parse(process.argv);
26
+
27
+ if (!program.args.length) {
28
+ program.help();
29
+ } else {
30
+ let time = TimeDifference.begin();
31
+
32
+ Promise.all(program.args.map((arg) => glob(arg)))
33
+ .then(async (list) => {
34
+ const fileList = [];
35
+
36
+ for (const item of list) {
37
+ while (item.length) {
38
+ fileList.push(path.resolve(process.cwd(), item.pop()));
39
+ }
40
+ }
41
+
42
+ if (!fileList.length) {
43
+ failed("0 files found");
44
+ process.exit(1);
45
+ }
46
+
47
+ const file = time.end();
48
+
49
+ const tests = new Set();
50
+
51
+ for (const file of fileList) {
52
+ // ESM files are loaded with import(); CommonJS files (their nearest
53
+ // package.json is not "type": "module") are loaded with require(), so
54
+ // nole can run in CommonJS environments too.
55
+ const module = isEsmFile(file)
56
+ ? await import(`file://${file}`)
57
+ : tsxRequire(file, import.meta.url);
58
+
59
+ for (const key in module) {
60
+ const value = module[key];
61
+
62
+ if (!value) {
63
+ continue;
64
+ }
65
+
66
+ if (!value[TEST_CLASS_KEY]) {
67
+ continue;
68
+ }
69
+
70
+ tests.add(value);
71
+ }
72
+ }
73
+
74
+ const prop = time.end();
75
+
76
+ let dependencyResolveWaitPeriod = +process.env.NOLE_WAIT_PERIOD;
77
+
78
+ if (
79
+ isNaN(dependencyResolveWaitPeriod) ||
80
+ dependencyResolveWaitPeriod < 0
81
+ ) {
82
+ dependencyResolveWaitPeriod = 500;
83
+ }
84
+
85
+ console.log("Nole tests v" + pkg.version);
86
+
87
+ try {
88
+ await Delay(dependencyResolveWaitPeriod);
89
+
90
+ try {
91
+ await ManualRun(tests);
92
+ } catch (e) {
93
+ if (e.message === "No specs found") {
94
+ log(`${FAILED_TEXT} no specs found`);
95
+ }
96
+ throw e;
97
+ }
98
+
99
+ console.log(" discover: %s", TimeResolve(file));
100
+ console.log(" resolve: %s", TimeResolve(prop - file));
101
+ console.log(
102
+ " tests: %s",
103
+ TimeResolve(time.end() - prop - dependencyResolveWaitPeriod),
104
+ );
105
+ process.exit(0);
106
+ } catch (e) {
107
+ console.error(e);
108
+ process.exit(1);
109
+ }
110
+ })
111
+ .catch((e) => {
112
+ failed("Error occurred on resolving files");
113
+ console.error(e.stack || e);
114
+ process.exit(1);
115
+ });
116
+ }
117
+
118
+ function failed(message) {
119
+ console.error(colors.bold(colors.red(" (failed) " + message)));
120
+ }
121
+
122
+ // Mirrors Node's own resolution: explicit extensions win, otherwise the nearest
123
+ // package.json "type" decides. Missing/other type means CommonJS.
124
+ function isEsmFile(file) {
125
+ if (file.endsWith(".mts") || file.endsWith(".mjs")) return true;
126
+ if (file.endsWith(".cts") || file.endsWith(".cjs")) return false;
127
+
128
+ let dir = path.dirname(file);
129
+
130
+ while (true) {
131
+ const pkgPath = path.join(dir, "package.json");
132
+
133
+ if (fs.existsSync(pkgPath)) {
134
+ try {
135
+ return JSON.parse(fs.readFileSync(pkgPath).toString()).type === "module";
136
+ } catch {
137
+ return false;
138
+ }
139
+ }
140
+
141
+ const parent = path.dirname(dir);
142
+ if (parent === dir) return false;
143
+ dir = parent;
144
+ }
145
+ }
package/dist/core.js CHANGED
@@ -53,4 +53,4 @@ export function Test({ dependencies, skip, before, after, timeout, } = {}) {
53
53
  _b[_d] = wrap(Reflect.get(_c, TEST_CLASS_KEY, _b)),
54
54
  _b;
55
55
  }
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTdDLE1BQU0sT0FBTyxRQUFROztLQUNYLGNBQWM7QUFBZixZQUFnQixHQUFrQjtJQUN2QyxZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBTUosTUFBTSxVQUFVLElBQUksQ0FFbEIsRUFDQSxZQUFZLEVBQ1osSUFBSSxFQUNKLE1BQU0sRUFDTixLQUFLLEVBQ0wsT0FBTyxNQU9MLEVBQUU7O0lBS0osU0FBUyxJQUFJLENBQUMsY0FBNkI7UUFDekMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFFLEVBQVcsQ0FBQztRQUV4RCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUM1QixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7UUFDckMsQ0FBQzthQUFNLENBQUM7WUFDTixTQUFTLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBRUQsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDekIsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDNUIsQ0FBQztRQUVELElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLFNBQVMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQzFCLENBQUM7UUFFRCxLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFekIsSUFBSSxjQUFjLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQzdCLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBUSxDQUFDLENBQUM7WUFDekQsQ0FBQztpQkFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO2dCQUN4QyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDMUMsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sSUFBSSxLQUFLLENBQUMsNENBQTRDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUN4QixDQUFDO1FBRUQsSUFBSSxPQUFPLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsU0FBUyxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDOUIsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxPQUFPLEtBQUEsS0FBTSxTQUFRLE1BQUEsUUFBUSxDQUFBO1lBRzNCO2dCQUNFLEtBQUssRUFBRSxDQUFDO1lBQ1YsQ0FBQztTQUNGO2FBTFMsY0FBYztRQUFmLE1BQWdCLEdBQWtCLElBQUksQ0FBQyxnQkFBTSxjQUFjLEtBQWYsQ0FBa0I7VUFLN0IsQ0FBQztBQUM3QyxDQUFDIn0=
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBVTdDLE1BQU0sT0FBTyxRQUFRO0NBS3BCO0tBSlMsY0FBYztBQUFmLFlBQWdCLEdBQWtCO0lBQ3ZDLFlBQVksRUFBRSxJQUFJLEdBQUcsRUFBRTtJQUN2QixPQUFPLEVBQUUsSUFBSTtDQUNkLENBQUM7QUFNSixNQUFNLFVBQVUsSUFBSSxDQUVsQixFQUNBLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEdBQ1IsR0FNRyxFQUFFOztJQUtKLFNBQVMsSUFBSSxDQUFDLGNBQTZCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLElBQUksY0FBYyxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUM3QixTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQVEsQ0FBQyxDQUFDO1lBQ3pELENBQUM7aUJBQU0sSUFBSSxPQUFPLE1BQU0sS0FBSyxVQUFVLEVBQUUsQ0FBQztnQkFDeEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzFDLENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDRDQUE0QyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ3JFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdkIsU0FBUyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksT0FBTyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFCLFNBQVMsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBQzlCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsT0FBTyxLQUFBLEtBQU0sU0FBUSxNQUFBLFFBQVEsQ0FBQTtZQUczQjtnQkFDRSxLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUM7U0FDRjthQUxTLGNBQWM7UUFBZixNQUFnQixHQUFrQixJQUFJLENBQUMsZ0JBQU0sY0FBYyxLQUFmLENBQWtCO1VBSzdCLENBQUM7QUFDN0MsQ0FBQyJ9
package/dist/dynamic.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { BaseTest } from "./core.js";
2
2
  export declare function skipTest(reason?: string): never;
3
+ export declare function skipClass(reason?: string): never;
3
4
  export declare function getTest<T extends BaseTest>(test: () => new () => T): Partial<T> | null;
4
5
  export declare function addTest<T extends BaseTest>(test: () => new () => T): boolean;
5
6
  //# sourceMappingURL=dynamic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASrC,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAE/C;AAUD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxC,IAAI,EAAE,MAAM,UAAU,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAUnB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,WAiBlE"}
1
+ {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AASrC,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAE/C;AAED,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAEhD;AAkBD,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EACxC,IAAI,EAAE,MAAM,UAAU,CAAC,GACtB,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAUnB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC,WAiBlE"}
package/dist/dynamic.js CHANGED
@@ -4,6 +4,9 @@ import { TestWrap } from "./test-wrap.js";
4
4
  export function skipTest(reason) {
5
5
  throw new NoleManualSkip(reason);
6
6
  }
7
+ export function skipClass(reason) {
8
+ throw new NoleManualClassSkip(reason);
9
+ }
7
10
  class NoleManualSkip extends Error {
8
11
  constructor(reason) {
9
12
  super(`Dynamicly skipped! ${reason}`);
@@ -11,6 +14,13 @@ class NoleManualSkip extends Error {
11
14
  this._nole_anchor = 1;
12
15
  }
13
16
  }
17
+ class NoleManualClassSkip extends Error {
18
+ constructor(reason) {
19
+ super(`Dynamicly skipped! ${reason}`);
20
+ this.reason = reason;
21
+ this._nole_anchor = 2;
22
+ }
23
+ }
14
24
  export function getTest(test) {
15
25
  const testWrap = getTestMap().get(test());
16
26
  if (!testWrap) {
@@ -32,4 +42,4 @@ export function addTest(test) {
32
42
  updateInformationForClass(testClass, testWrap, testMap);
33
43
  return true;
34
44
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixHQUMxQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFlO0lBQ3RDLE1BQU0sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sY0FBZSxTQUFRLEtBQUs7SUFHaEMsWUFBbUIsTUFBZTtRQUNoQyxLQUFLLENBQUMsc0JBQXNCLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFEckIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUZsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixJQUF1QjtJQUV2QixNQUFNLFFBQVEsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFTLENBQXlCLENBQUM7SUFFekUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFxQixJQUF1QjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO0lBRXpCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWpDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUNMLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLHlCQUF5QixHQUMxQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFMUMsTUFBTSxVQUFVLFFBQVEsQ0FBQyxNQUFlO0lBQ3RDLE1BQU0sSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbkMsQ0FBQztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsTUFBZTtJQUN2QyxNQUFNLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sY0FBZSxTQUFRLEtBQUs7SUFHaEMsWUFBbUIsTUFBZTtRQUNoQyxLQUFLLENBQUMsc0JBQXNCLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFEckIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUZsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLG1CQUFvQixTQUFRLEtBQUs7SUFHckMsWUFBbUIsTUFBZTtRQUNoQyxLQUFLLENBQUMsc0JBQXNCLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFEckIsV0FBTSxHQUFOLE1BQU0sQ0FBUztRQUZsQyxpQkFBWSxHQUFHLENBQUMsQ0FBQztJQUlqQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixJQUF1QjtJQUV2QixNQUFNLFFBQVEsR0FBRyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFTLENBQXlCLENBQUM7SUFFekUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQy9CLENBQUM7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUFxQixJQUF1QjtJQUNqRSxNQUFNLE9BQU8sR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUM3QixNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO0lBRXpCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLGNBQWMsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBRWpDLHlCQUF5QixDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAUrD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,iBA4BrD"}
1
+ {"version":3,"file":"before-hooks.d.ts","sourceRoot":"","sources":["../../src/handle/before-hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAWrD,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,iBA4CrD"}
@@ -1,7 +1,7 @@
1
1
  import { HookType, TestWrap } from "../test-wrap.js";
2
2
  import { Executor } from "../utils/executor.js";
3
3
  import { TimeFactor } from "../utils/time_factor.js";
4
- import { colors, DEFAULT_TIMEOUT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
4
+ import { colors, DEFAULT_TIMEOUT, DYNAMIC_SKIP_TEXT, HOOK_FAILED_TEXT, OK_TEXT, } from "../const.js";
5
5
  export async function handleBeforeHooks(test) {
6
6
  const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
7
7
  for (let [propertyKey, hook] of test.hooks.entries()) {
@@ -15,10 +15,20 @@ export async function handleBeforeHooks(test) {
15
15
  console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
16
16
  }
17
17
  catch (e) {
18
+ const anchor = e?._nole_anchor;
19
+ if (anchor === 1) {
20
+ throw new Error("You cannot just skip the before hook! Probably you ment to skip the whole test class!");
21
+ }
22
+ else if (anchor === 2) {
23
+ let reason = e.reason;
24
+ test.skipClass = { reason, origin: ":" + propertyKey };
25
+ console.log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${hookName}() ${reason ? "{" + reason + "}" : ""}`);
26
+ continue;
27
+ }
18
28
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
19
29
  console.error(e?.stack ?? e);
20
30
  throw e;
21
31
  }
22
32
  }
23
33
  }
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLGdCQUFnQixFQUNoQixPQUFPLEdBQ1IsTUFBTSxhQUFhLENBQUM7QUFFckIsTUFBTSxDQUFDLEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxJQUFjO0lBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLGVBQWUsQ0FBQztJQUV2RCxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxRQUFRLENBQUMsTUFBTTtZQUFFLFNBQVM7UUFFM0MsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDeEIsTUFBTSxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsSUFBSTtZQUNQLENBQUMsV0FBVyxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQ25FLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxDQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDdEQsT0FBTyxDQUNSLENBQUM7WUFFRixJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsZ0JBQWdCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFFLENBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JELE9BQU8sRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUNmLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsT0FBTyxHQUNSLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsaUJBQWlCLENBQUMsSUFBYztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxlQUFlLENBQUM7SUFFdkQsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLE1BQU07WUFBRSxTQUFTO1FBRTNDLElBQUksUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQ3hCLE1BQU0sQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLElBQUk7WUFDUCxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUNuRSxDQUNGLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxNQUFNLFFBQVEsQ0FDWixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3RELE9BQU8sQ0FDUixDQUFDO1lBRUYsSUFBSSxRQUFRLEdBQUcsVUFBVSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxNQUFNLEdBQUksQ0FBUyxFQUFFLFlBQVksQ0FBQztZQUN4QyxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYix1RkFBdUYsQ0FDeEYsQ0FBQztZQUNKLENBQUM7aUJBQU0sSUFBSSxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxHQUFJLENBQVMsQ0FBQyxNQUFNLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxNQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxnQkFBZ0IsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -1 +1 @@
1
- {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBAoD/C"}
1
+ {"version":3,"file":"specs.d.ts","sourceRoot":"","sources":["../../src/handle/specs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAerD,wBAAsB,WAAW,CAAC,IAAI,EAAE,QAAQ,iBAiE/C"}
@@ -14,7 +14,9 @@ export async function handleSpecs(test) {
14
14
  let reason = shouldPropertySkip
15
15
  ? test.skip.get(propertyKey).reason
16
16
  : test.skipClass.reason;
17
- console.log(`${SKIP_TEXT} ${" ".repeat(9)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
17
+ const hasOrigin = !!test.skipClass?.origin;
18
+ const TEXT = hasOrigin ? DYNAMIC_SKIP_TEXT : SKIP_TEXT;
19
+ console.log(`${TEXT} ${" ".repeat(hasOrigin ? 8 : 9)} ${testName}() ${reason ? "{" + reason + "}" : ""}${hasOrigin ? `\n${" ".repeat(22)}↳ skip came from ${test.skipClass?.origin}` : ``}`);
18
20
  continue;
19
21
  }
20
22
  await handleBeforeEachHooks(test);
@@ -25,11 +27,18 @@ export async function handleSpecs(test) {
25
27
  console.log(`${OK_TEXT} ${timeText} ${testName}()`);
26
28
  }
27
29
  catch (e) {
28
- if (e?._nole_anchor) {
30
+ const anchor = e?._nole_anchor;
31
+ if (anchor === 1) {
29
32
  let reason = e.reason;
30
33
  console.log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
31
34
  continue;
32
35
  }
36
+ else if (anchor === 2) {
37
+ let reason = e.reason;
38
+ test.skipClass = { reason, origin: "." + propertyKey };
39
+ console.log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
40
+ continue;
41
+ }
33
42
  let timeText = TimeFactor(start.end(), timeout);
34
43
  console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
35
44
  console.error(e?.stack ?? e);
@@ -38,4 +47,4 @@ export async function handleSpecs(test) {
38
47
  await handleAfterEachHooks(test);
39
48
  }
40
49
  }
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZGxlL3NwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUFDLElBQWM7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxJQUFJLE1BQU0sR0FBRyxrQkFBa0I7Z0JBQzdCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUUsQ0FBQyxNQUFNO2dCQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVUsQ0FBQyxNQUFNLENBQUM7WUFDM0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLFNBQVMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLFFBQVEsTUFDdkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFDaEMsRUFBRSxDQUNILENBQUM7WUFDRixTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0scUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEMsSUFBSSxLQUFLLEdBQUcsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxDQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDdEQsT0FBTyxDQUNSLENBQUM7WUFFRixJQUFJLFFBQVEsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWhELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxPQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxJQUFLLENBQVMsRUFBRSxZQUFZLEVBQUUsQ0FBQztnQkFDN0IsSUFBSSxNQUFNLEdBQUksQ0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsT0FBTyxDQUFDLEdBQUcsQ0FDVCxHQUFHLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksUUFBUSxNQUMvQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUNoQyxFQUFFLENBQ0gsQ0FBQztnQkFDRixTQUFTO1lBQ1gsQ0FBQztZQUVELElBQUksUUFBUSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFaEQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLFdBQVcsSUFBSSxRQUFRLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQztZQUMxRCxPQUFPLENBQUMsS0FBSyxDQUFFLENBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO1FBRUQsTUFBTSxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0FBQ0gsQ0FBQyJ9
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaGFuZGxlL3NwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUNMLE1BQU0sRUFDTixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLFdBQVcsRUFDWCxPQUFPLEVBQ1AsU0FBUyxHQUNWLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE1BQU0sQ0FBQyxLQUFLLFVBQVUsV0FBVyxDQUFDLElBQWM7SUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksZUFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFFekUsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RCxJQUFJLGtCQUFrQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QyxJQUFJ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
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { HookType } from "./test-wrap.js";
2
2
  export { Test } from "./core.js";
3
- export { skipTest, getTest, addTest } from "./dynamic.js";
3
+ export { skipTest, skipClass, getTest, addTest } from "./dynamic.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export { HookType } from "./test-wrap.js";
2
2
  export { Test } from "./core.js";
3
- export { skipTest, getTest, addTest } from "./dynamic.js";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDIn0=
3
+ export { skipTest, skipClass, getTest, addTest } from "./dynamic.js";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQyJ9
@@ -0,0 +1,7 @@
1
+ declare const PipelineTest_base: new () => {} & import("./core.js").BaseTest;
2
+ export declare class PipelineTest extends PipelineTest_base {
3
+ dynamicApi(): Promise<void>;
4
+ drivesTheWholePipeline(): Promise<void>;
5
+ }
6
+ export {};
7
+ //# sourceMappingURL=pipeline.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.test.d.ts","sourceRoot":"","sources":["../src/pipeline.test.ts"],"names":[],"mappings":";AAgHA,qBAAa,YAAa,SAAQ,iBAAM;IAChC,UAAU,kBAsBf;IAEK,sBAAsB,kBAoB3B;CACF"}
@@ -0,0 +1,124 @@
1
+ import * as assert from "assert";
2
+ import { Test } from "./index.js";
3
+ import { addTest, getTest, skipClass, skipTest } from "./dynamic.js";
4
+ import { ManualRun } from "./run.js";
5
+ // These classes are not exported, so the outer runner ignores them. They are
6
+ // driven directly through the src ManualRun pipeline below, which is what lets
7
+ // coverage reach run.ts, the hook handlers and specs.ts.
8
+ class Dependency extends Test() {
9
+ constructor() {
10
+ super(...arguments);
11
+ this.ready = false;
12
+ }
13
+ init() {
14
+ this.ready = true;
15
+ }
16
+ cleanUp() { }
17
+ }
18
+ class Main extends Test({
19
+ dependencies: {
20
+ dep: () => Dependency,
21
+ depDirect: Dependency, // covers the direct-class dependency branch
22
+ },
23
+ }) {
24
+ _internal() {
25
+ assert.fail("internal methods should never run as specs");
26
+ }
27
+ skip_thisOne() {
28
+ assert.fail("skip_ methods should never run");
29
+ }
30
+ hookInit() { }
31
+ async before() { }
32
+ async after() { }
33
+ async beforeEach() { }
34
+ async afterEach() { }
35
+ usesDependency() {
36
+ assert.equal(this.dep.ready, true);
37
+ assert.equal(this.depDirect.ready, true);
38
+ }
39
+ cleanUp() { }
40
+ }
41
+ class OrderFirst extends Test() {
42
+ step() { }
43
+ }
44
+ class OrderLast extends Test({ before: () => [OrderFirst] }) {
45
+ step() { }
46
+ }
47
+ class AfterAnchor extends Test() {
48
+ step() { }
49
+ }
50
+ class AfterDependent extends Test({ after: () => [AfterAnchor] }) {
51
+ step() { }
52
+ }
53
+ class DynamicSkipClassFromSpec extends Test() {
54
+ first() {
55
+ skipClass("skipped from a spec");
56
+ }
57
+ second() {
58
+ assert.fail("should have been class-skipped");
59
+ }
60
+ }
61
+ class DynamicSkipClassFromBefore extends Test() {
62
+ before() {
63
+ skipClass("skipped from before");
64
+ }
65
+ spec() {
66
+ assert.fail("should have been class-skipped");
67
+ }
68
+ }
69
+ class DynamicSkipSingleSpec extends Test() {
70
+ skipped() {
71
+ skipTest("just this one");
72
+ }
73
+ kept() { }
74
+ }
75
+ class StaticallySkipped extends Test({ skip: "static skip" }) {
76
+ spec() {
77
+ assert.fail("should have been skipped");
78
+ }
79
+ }
80
+ class Failing extends Test() {
81
+ boom() {
82
+ throw new Error("intentional failure");
83
+ }
84
+ }
85
+ class SkipTestInBefore extends Test() {
86
+ before() {
87
+ skipTest("wrong helper");
88
+ }
89
+ spec() { }
90
+ }
91
+ export class PipelineTest extends Test() {
92
+ async dynamicApi() {
93
+ class NeverRegistered extends Test() {
94
+ spec() { }
95
+ }
96
+ assert.equal(addTest(() => NeverRegistered), true);
97
+ assert.equal(addTest(() => NeverRegistered), false); // duplicate
98
+ const instance = getTest(() => NeverRegistered);
99
+ assert.ok(instance);
100
+ class Unknown extends Test() {
101
+ }
102
+ assert.equal(getTest(() => Unknown), null);
103
+ assert.throws(() => skipTest("x"), (e) => e._nole_anchor === 1 && e.reason === "x");
104
+ assert.throws(() => skipClass("y"), (e) => e._nole_anchor === 2 && e.reason === "y");
105
+ }
106
+ async drivesTheWholePipeline() {
107
+ await ManualRun(new Set([
108
+ Main,
109
+ OrderFirst,
110
+ OrderLast,
111
+ AfterAnchor,
112
+ AfterDependent,
113
+ DynamicSkipClassFromSpec,
114
+ DynamicSkipClassFromBefore,
115
+ DynamicSkipSingleSpec,
116
+ StaticallySkipped,
117
+ ]));
118
+ // a throwing spec propagates out of the pipeline
119
+ await assert.rejects(() => ManualRun(new Set([Failing])));
120
+ // skipTest inside a before hook is a usage error
121
+ await assert.rejects(() => ManualRun(new Set([SkipTestInBefore])));
122
+ }
123
+ }
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9waXBlbGluZS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRXJDLDZFQUE2RTtBQUM3RSwrRUFBK0U7QUFDL0UseURBQXlEO0FBRXpELE1BQU0sVUFBVyxTQUFRLElBQUksRUFBRTtJQUEvQjs7UUFDRSxVQUFLLEdBQUcsS0FBSyxDQUFDO0lBT2hCLENBQUM7SUFMQyxJQUFJO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELE9BQU8sS0FBSSxDQUFDO0NBQ2I7QUFFRCxNQUFNLElBQUssU0FBUSxJQUFJLENBQUM7SUFDdEIsWUFBWSxFQUFFO1FBQ1osR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLFVBQVU7UUFDckIsU0FBUyxFQUFFLFVBQWlCLEVBQUUsNENBQTRDO0tBQzNFO0NBQ0YsQ0FBQztJQUNBLFNBQVM7UUFDUCxNQUFNLENBQUMsSUFBSSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLENBQUMsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELFFBQVEsS0FBSSxDQUFDO0lBRWIsS0FBSyxDQUFDLE1BQU0sS0FBSSxDQUFDO0lBQ2pCLEtBQUssQ0FBQyxLQUFLLEtBQUksQ0FBQztJQUNoQixLQUFLLENBQUMsVUFBVSxLQUFJLENBQUM7SUFDckIsS0FBSyxDQUFDLFNBQVMsS0FBSSxDQUFDO0lB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
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAsB,MAAM,WAAW,CAAC;AAWzD,wBAAsB,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,QAAQ,CAAC,iBA0CrE;AAUD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,QAAQ,EAC1B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,GAAG,CAAC,UAAU,QAAQ,EAAE,QAAQ,CAAC,QA2EzC;AAYD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,QAWvD;AAuFD,wBAAgB,UAAU,kBAnPE,QAAQ,YAqPnC;AAED,wBAAgB,gBAAgB,kBAtPA,QAAQ,YAwPvC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAsB,MAAM,WAAW,CAAC;AAWzD,wBAAsB,SAAS,CAAC,aAAa,EAAE,GAAG,CAAC,UAAU,QAAQ,CAAC,iBA0CrE;AAUD,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,UAAU,QAAQ,EAC1B,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,GAAG,CAAC,UAAU,QAAQ,EAAE,QAAQ,CAAC,QAyEzC;AAYD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,QAAQ,QAWvD;AAgGD,wBAAgB,UAAU,kBA1PE,QAAQ,YA4PnC;AAED,wBAAgB,gBAAgB,kBA7PA,QAAQ,YA+PvC"}