nole 2.2.2 → 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.
Files changed (110) hide show
  1. package/README.md +142 -236
  2. package/bin/nole.js +43 -44
  3. package/dist/const.d.ts +8 -0
  4. package/dist/const.d.ts.map +1 -0
  5. package/dist/const.js +9 -0
  6. package/dist/core.d.ts +22 -0
  7. package/dist/core.d.ts.map +1 -0
  8. package/dist/core.js +56 -0
  9. package/dist/dynamic.d.ts +4 -1
  10. package/dist/dynamic.d.ts.map +1 -1
  11. package/dist/dynamic.js +25 -1
  12. package/dist/handle/after-each-hooks.d.ts +3 -0
  13. package/dist/handle/after-each-hooks.d.ts.map +1 -0
  14. package/dist/handle/after-each-hooks.js +26 -0
  15. package/dist/handle/after-hooks.d.ts +3 -0
  16. package/dist/handle/after-hooks.d.ts.map +1 -0
  17. package/dist/handle/after-hooks.js +24 -0
  18. package/dist/handle/before-each-hooks.d.ts +3 -0
  19. package/dist/handle/before-each-hooks.d.ts.map +1 -0
  20. package/dist/handle/before-each-hooks.js +26 -0
  21. package/dist/handle/before-hooks.d.ts +3 -0
  22. package/dist/handle/before-hooks.d.ts.map +1 -0
  23. package/dist/handle/before-hooks.js +24 -0
  24. package/dist/handle/cleanup-hooks.d.ts +3 -0
  25. package/dist/handle/cleanup-hooks.d.ts.map +1 -0
  26. package/dist/handle/cleanup-hooks.js +34 -0
  27. package/dist/handle/specs.d.ts +3 -0
  28. package/dist/handle/specs.d.ts.map +1 -0
  29. package/dist/handle/specs.js +41 -0
  30. package/dist/index.d.ts +3 -3
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js +4 -4
  33. package/dist/run.d.ts +7 -6
  34. package/dist/run.d.ts.map +1 -1
  35. package/dist/run.js +158 -196
  36. package/dist/symbol.d.ts +2 -0
  37. package/dist/symbol.d.ts.map +1 -0
  38. package/dist/symbol.js +2 -0
  39. package/dist/test-wrap.d.ts +37 -0
  40. package/dist/test-wrap.d.ts.map +1 -0
  41. package/dist/test-wrap.js +30 -0
  42. package/dist/utils/executor.js +1 -1
  43. package/dist/utils/executor.test.d.ts +3 -1
  44. package/dist/utils/executor.test.d.ts.map +1 -1
  45. package/dist/utils/executor.test.js +3 -30
  46. package/dist/utils/time_difference.d.ts +9 -0
  47. package/dist/utils/time_difference.d.ts.map +1 -1
  48. package/dist/utils/time_difference.js +10 -1
  49. package/dist/utils/time_difference.test.d.ts +3 -1
  50. package/dist/utils/time_difference.test.d.ts.map +1 -1
  51. package/dist/utils/time_difference.test.js +5 -18
  52. package/dist/utils/time_factor.d.ts.map +1 -1
  53. package/dist/utils/time_factor.js +2 -3
  54. package/dist/utils/time_factor.test.d.ts +3 -1
  55. package/dist/utils/time_factor.test.d.ts.map +1 -1
  56. package/dist/utils/time_factor.test.js +3 -18
  57. package/package.json +6 -6
  58. package/src/const.ts +11 -0
  59. package/src/core.ts +89 -0
  60. package/src/dynamic.ts +43 -1
  61. package/src/handle/after-each-hooks.ts +41 -0
  62. package/src/handle/after-hooks.ts +38 -0
  63. package/src/handle/before-each-hooks.ts +40 -0
  64. package/src/handle/before-hooks.ts +39 -0
  65. package/src/handle/cleanup-hooks.ts +55 -0
  66. package/src/handle/specs.ts +68 -0
  67. package/src/index.ts +3 -13
  68. package/src/run.ts +184 -256
  69. package/src/symbol.ts +1 -0
  70. package/src/{test.ts → test-wrap.ts} +13 -12
  71. package/src/utils/executor.test.ts +2 -5
  72. package/src/utils/executor.ts +1 -1
  73. package/src/utils/time_difference.test.ts +2 -3
  74. package/src/utils/time_factor.test.ts +2 -3
  75. package/src/utils/time_factor.ts +1 -3
  76. package/test/basic.test.ts +8 -9
  77. package/test/before.test.ts +14 -27
  78. package/test/clean-up.test.ts +12 -16
  79. package/test/dynamic-skip.test.ts +2 -4
  80. package/test/dynamic.test.ts +23 -8
  81. package/test/extend.test.ts +43 -0
  82. package/test/hook.test.ts +9 -10
  83. package/test/multi-dependency.test.ts +25 -27
  84. package/test/multiple-uppercased-chars.test.ts +8 -7
  85. package/test/skip-all.test.ts +4 -13
  86. package/test/turkish-chars.test.ts +8 -7
  87. package/tsconfig.json +5 -7
  88. package/dist/data.d.ts +0 -3
  89. package/dist/data.d.ts.map +0 -1
  90. package/dist/data.js +0 -9
  91. package/dist/data.js.map +0 -1
  92. package/dist/decorators.d.ts +0 -9
  93. package/dist/decorators.d.ts.map +0 -1
  94. package/dist/decorators.js +0 -118
  95. package/dist/decorators.js.map +0 -1
  96. package/dist/dynamic.js.map +0 -1
  97. package/dist/index.js.map +0 -1
  98. package/dist/run.js.map +0 -1
  99. package/dist/test.d.ts +0 -39
  100. package/dist/test.d.ts.map +0 -1
  101. package/dist/test.js +0 -25
  102. package/dist/test.js.map +0 -1
  103. package/dist/utils/executor.js.map +0 -1
  104. package/dist/utils/executor.test.js.map +0 -1
  105. package/dist/utils/time_difference.js.map +0 -1
  106. package/dist/utils/time_difference.test.js.map +0 -1
  107. package/dist/utils/time_factor.js.map +0 -1
  108. package/dist/utils/time_factor.test.js.map +0 -1
  109. package/src/data.ts +0 -13
  110. package/src/decorators.ts +0 -208
package/dist/run.js CHANGED
@@ -1,234 +1,190 @@
1
- import { HashMap } from "./data.js";
2
- import { TimeDifference } from "./utils/time_difference.js";
3
- import { TimeFactor } from "./utils/time_factor.js";
4
- import * as clrs from "colors/safe.js";
5
- import { Executor } from "./utils/executor.js";
6
- import { HookType } from "./test.js";
7
- const colors = clrs.default;
8
- const OK_TEXT = colors.bold(colors.green(" (ok) "));
9
- const SKIP_TEXT = colors.bold(colors.yellow(" (skip) "));
10
- const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(" (dskip) "));
11
- const FAILED_TEXT = colors.bold(colors.red(" (failed) "));
12
- const HOOK_FAILED_TEXT = colors.bold(colors.red(" (hook failed) "));
13
- export function ManualRun(options) {
14
- if (!options.log) {
15
- options.log = console.log.bind(console);
1
+ import { HookType, TestWrap } from "./test-wrap.js";
2
+ import { BaseTest } from "./core.js";
3
+ import { TEST_CLASS_KEY } from "./symbol.js";
4
+ import { handleBeforeHooks } from "./handle/before-hooks.js";
5
+ import { handleSpecs } from "./handle/specs.js";
6
+ import { handleAfterHooks } from "./handle/after-hooks.js";
7
+ import { handleCleanUp } from "./handle/cleanup-hooks.js";
8
+ import { colors, FAILED_TEXT } from "./const.js";
9
+ let allTests = new Map();
10
+ let notTestedYet = new Map();
11
+ export async function ManualRun(originalTests) {
12
+ for (let test of originalTests) {
13
+ if (allTests.has(test)) {
14
+ continue;
15
+ }
16
+ const wrap = new TestWrap(test);
17
+ allTests.set(test, wrap);
18
+ notTestedYet.set(test, wrap);
16
19
  }
17
- const log = options.log;
18
- return new Promise(async (resolve, reject) => {
19
- try {
20
- let hashMap = new Map(HashMap());
21
- if (!hashMap.size) {
22
- log(`${FAILED_TEXT} no specs found`);
23
- throw new Error("No specs found");
24
- }
25
- while (hashMap.size) {
26
- let test = PickNextTestFromHashMap(hashMap);
27
- if (test) {
28
- hashMap.delete(test.target);
29
- CreateInstanceIfNotExists(test);
30
- HandleDependencies(test);
31
- await HandleBeforeHooks(test, options);
32
- await HandleSpecs(test, options);
33
- await HandleAfterHooks(test, options);
34
- test.isFinished = true;
35
- if (test.dependents.length == 0) {
36
- await HandleCleanUp(test, options);
37
- }
38
- }
39
- else {
40
- DependencyLock(hashMap);
41
- }
20
+ extractInformationFromClasses(notTestedYet);
21
+ if (!notTestedYet.size) {
22
+ throw new Error("No specs found");
23
+ }
24
+ while (notTestedYet.size) {
25
+ let entry = pickNext(notTestedYet);
26
+ if (entry) {
27
+ let test = entry[1];
28
+ // console.log(colors.bold(colors.cyan(`Running test: ${test.name}`)));
29
+ notTestedYet.delete(test.target);
30
+ createInstanceIfNotExists(test);
31
+ handleDependencies(test);
32
+ await handleBeforeHooks(test);
33
+ await handleSpecs(test);
34
+ await handleAfterHooks(test);
35
+ test.isFinished = true;
36
+ if (test.dependents.length == 0) {
37
+ await handleCleanUp(test);
42
38
  }
43
- resolve();
44
39
  }
45
- catch (e) {
46
- reject(e);
40
+ else {
41
+ dependencyLock(notTestedYet);
47
42
  }
48
- });
49
- }
50
- function PickNextTestFromHashMap(hashMap) {
51
- for (let test of hashMap.values()) {
52
- if (test.isFinished)
53
- continue;
54
- if (!test.dependencies.every((x) => x.dependency.isFinished))
55
- continue;
56
- return test;
57
43
  }
58
44
  }
59
- function CreateInstanceIfNotExists(test) {
60
- if (!test.testInstance) {
61
- test.testInstance = new test.target();
45
+ function extractInformationFromClasses(tests) {
46
+ for (let [target, test] of tests.entries()) {
47
+ updateInformationForClass(target, test, tests);
62
48
  }
63
49
  }
64
- function HandleDependencies(test) {
65
- for (let dependency of test.dependencies) {
66
- test.testInstance[dependency.propertyKey] =
67
- dependency.dependency.testInstance;
50
+ export function updateInformationForClass(target, test, tests) {
51
+ const config = target[TEST_CLASS_KEY];
52
+ if (config.skip) {
53
+ test.skipClass = { reason: config.skip };
68
54
  }
69
- }
70
- async function HandleBeforeHooks(test, options) {
71
- for (let [propertyKey, hook] of test.hooks.entries()) {
72
- if (hook.type != HookType.Before)
73
- continue;
74
- let hookName = colors.bold(colors.yellow(test.name +
75
- (propertyKey != "before" ? `.${propertyKey}:before` : ":before")));
76
- try {
77
- if (!options.orderDebug) {
78
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
55
+ test.dependencies = config.dependencies
56
+ ? Array.from(config.dependencies.entries().map(([key, dep]) => {
57
+ const actual = dep();
58
+ let testWrap = tests.get(actual);
59
+ if (!testWrap) {
60
+ testWrap = new TestWrap(actual);
61
+ tests.set(actual, testWrap);
62
+ allTests.set(actual, testWrap);
79
63
  }
80
- else {
81
- let timeText = TimeFactor(0, hook.timeout);
82
- options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
64
+ testWrap.dependents.push(test);
65
+ return {
66
+ propertyKey: key,
67
+ dependency: testWrap,
68
+ };
69
+ }))
70
+ : [];
71
+ if (config.before) {
72
+ const beforeTests = config.before();
73
+ for (let i = 0; i < beforeTests.length; i++) {
74
+ const actual = beforeTests[i];
75
+ let testWrap = tests.get(actual);
76
+ if (!testWrap) {
77
+ testWrap = new TestWrap(actual);
78
+ tests.set(actual, testWrap);
79
+ allTests.set(actual, testWrap);
83
80
  }
84
- }
85
- catch (e) {
86
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
87
- console.error(e?.stack ?? e);
88
- throw e;
81
+ testWrap.dependencies.push({
82
+ propertyKey: "_before_" + i,
83
+ dependency: test,
84
+ });
85
+ test.dependents.push(testWrap);
89
86
  }
90
87
  }
91
- }
92
- async function HandleBeforeEachHooks(test, options) {
93
- for (let [propertyKey, hook] of test.hooks.entries()) {
94
- if (hook.type != HookType.BeforeEach)
95
- continue;
96
- let hookName = colors.bold(colors.yellow(test.name +
97
- (propertyKey != "beforeEach"
98
- ? `.${propertyKey}:beforeEach`
99
- : ":beforeEach")));
100
- try {
101
- if (!options.orderDebug) {
102
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
103
- }
104
- else {
105
- let timeText = TimeFactor(0, hook.timeout);
106
- options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
88
+ if (config.after) {
89
+ const afterTests = config.after();
90
+ for (let i = 0; i < afterTests.length; i++) {
91
+ const actual = afterTests[i];
92
+ let testWrap = tests.get(actual);
93
+ if (!testWrap) {
94
+ testWrap = new TestWrap(actual);
95
+ tests.set(actual, testWrap);
96
+ allTests.set(actual, testWrap);
107
97
  }
108
- }
109
- catch (e) {
110
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
111
- console.error(e?.stack ?? e);
112
- throw e;
98
+ test.dependencies.push({
99
+ propertyKey: "_after_" + i,
100
+ dependency: testWrap,
101
+ });
102
+ testWrap.dependents.push(test);
113
103
  }
114
104
  }
115
105
  }
116
- async function HandleAfterEachHooks(test, options) {
117
- for (let [propertyKey, hook] of test.hooks.entries()) {
118
- if (hook.type != HookType.AfterEach)
106
+ function pickNext(tests) {
107
+ for (let entry of tests.entries()) {
108
+ let test = entry[1];
109
+ if (test.isFinished)
119
110
  continue;
120
- let hookName = colors.bold(colors.yellow(test.name +
121
- (propertyKey != "afterEach"
122
- ? `.${propertyKey}:afterEach`
123
- : ":afterEach")));
124
- try {
125
- if (!options.orderDebug) {
126
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
127
- }
128
- else {
129
- let timeText = TimeFactor(0, hook.timeout);
130
- options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
131
- }
132
- }
133
- catch (e) {
134
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
135
- console.error(e?.stack ?? e);
136
- throw e;
137
- }
111
+ if (!test.dependencies.every((x) => x.dependency.isFinished))
112
+ continue;
113
+ return entry;
114
+ }
115
+ }
116
+ export function createInstanceIfNotExists(test) {
117
+ if (!test.testInstance) {
118
+ const instance = new test.target();
119
+ test.testInstance = instance;
120
+ }
121
+ if (!test.specDetection) {
122
+ specDetection(test);
123
+ test.specDetection = true;
138
124
  }
139
125
  }
140
- async function HandleSpecs(test, options) {
141
- const log = options.log;
142
- for (let [propertyKey, spec] of test.specs.entries()) {
143
- let testName = colors.bold(colors.yellow(test.name + "." + propertyKey));
144
- const shouldPropertySkip = test.skip.has(propertyKey);
145
- if (shouldPropertySkip || test.skipClass) {
146
- let reason = shouldPropertySkip
147
- ? test.skip.get(propertyKey).reason
148
- : test.skipClass.reason;
149
- log(`${SKIP_TEXT} ${" ".repeat(9)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
126
+ function specDetection(test) {
127
+ const instance = test.testInstance;
128
+ for (let key of getAllMethods(instance)) {
129
+ if (typeof key !== "string") {
150
130
  continue;
151
131
  }
152
- await HandleBeforeEachHooks(test, options);
153
- let start = TimeDifference.begin();
154
- try {
155
- if (!options.orderDebug) {
156
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
157
- }
158
- let timeText = TimeFactor(start.end(), spec.timeout);
159
- log(`${OK_TEXT} ${timeText} ${testName}()`);
132
+ let lowerKey = key.toLowerCase();
133
+ if (lowerKey.startsWith("skip")) {
134
+ test.skip.set(key, { reason: "marked as skipped" });
160
135
  }
161
- catch (e) {
162
- if (e?._nole_anchor) {
163
- let reason = e.reason;
164
- log(`${DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
165
- continue;
136
+ if (lowerKey.startsWith("hook") ||
137
+ lowerKey === "cleanup" ||
138
+ lowerKey === "before" ||
139
+ lowerKey === "after" ||
140
+ lowerKey === "beforeeach" ||
141
+ lowerKey === "aftereach") {
142
+ let type = HookType.Before;
143
+ if (lowerKey.endsWith("before")) {
144
+ type = HookType.Before;
166
145
  }
167
- let timeText = TimeFactor(start.end(), spec.timeout);
168
- console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
169
- console.error(e?.stack ?? e);
170
- throw e;
171
- }
172
- await HandleAfterEachHooks(test, options);
173
- }
174
- }
175
- async function HandleAfterHooks(test, options) {
176
- for (let [propertyKey, hook] of test.hooks.entries()) {
177
- if (hook.type != HookType.After)
178
- continue;
179
- let hookName = colors.bold(colors.yellow(test.name +
180
- (propertyKey != "after" ? `.${propertyKey}:after` : ":after")));
181
- try {
182
- if (!options.orderDebug) {
183
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
146
+ else if (lowerKey.endsWith("after")) {
147
+ type = HookType.After;
184
148
  }
185
- else {
186
- let timeText = TimeFactor(0, hook.timeout);
187
- options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
149
+ else if (lowerKey.endsWith("beforeeach")) {
150
+ type = HookType.BeforeEach;
188
151
  }
152
+ else if (lowerKey.endsWith("aftereach")) {
153
+ type = HookType.AfterEach;
154
+ }
155
+ else if (lowerKey.endsWith("cleanup")) {
156
+ type = HookType.CleanUp;
157
+ }
158
+ test.hooks.set(key, { type });
159
+ continue;
189
160
  }
190
- catch (e) {
191
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
192
- console.error(e?.stack ?? e);
193
- throw e;
194
- }
161
+ test.specs.set(key, {});
195
162
  }
196
163
  }
197
- async function HandleCleanUp(test, options) {
198
- if (test.cleanUpCalled)
199
- return;
200
- if (!test.dependents.every((dependent) => dependent.isFinished && dependent.cleanUpCalled))
201
- return;
202
- test.cleanUpCalled = true;
203
- const log = options.log;
204
- for (let [propertyKey, hook] of test.hooks.entries()) {
205
- if (hook.type != HookType.CleanUp)
206
- continue;
207
- let hookName = colors.bold(colors.yellow(test.name +
208
- (propertyKey != "cleanUp" ? `.${propertyKey}:cleanUp` : ":cleanUp")));
209
- let start = TimeDifference.begin();
210
- try {
211
- if (!options.orderDebug) {
212
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
164
+ function getAllMethods(instance) {
165
+ let props = new Set();
166
+ let currentObj = instance;
167
+ while (currentObj && currentObj !== Object.prototype) {
168
+ Object.getOwnPropertyNames(currentObj).forEach((prop) => {
169
+ if (typeof currentObj[prop] === "function" && prop !== "constructor") {
170
+ props.add(prop);
213
171
  }
214
- let timeText = TimeFactor(start.end(), hook.timeout);
215
- log(`${OK_TEXT} ${timeText} ${hookName}()`);
216
- }
217
- catch (e) {
218
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
219
- console.error(e?.stack ?? e);
220
- throw e;
221
- }
172
+ });
173
+ currentObj = Object.getPrototypeOf(currentObj);
222
174
  }
223
- for (let tree of test.dependencies) {
224
- await HandleCleanUp(tree.dependency, options);
175
+ return Array.from(props);
176
+ }
177
+ function handleDependencies(test) {
178
+ for (let dependency of test.dependencies) {
179
+ test.testInstance[dependency.propertyKey] =
180
+ dependency.dependency.testInstance;
225
181
  }
226
182
  }
227
- function DependencyLock(hashMap) {
183
+ function dependencyLock(tests) {
228
184
  console.error(FAILED_TEXT +
229
185
  colors.red("Looks like there is confict issue for dependency resolving!"));
230
186
  console.error("Possible conflicts;");
231
- for (let test of hashMap.values()) {
187
+ for (let [, test] of tests) {
232
188
  console.error(`- class ${test.name} { ${test.dependencies
233
189
  .filter((x) => !x.dependency.isFinished)
234
190
  .map((x) => `@Dependency(${x.dependency.name}) ${x.propertyKey}`)
@@ -236,4 +192,10 @@ function DependencyLock(hashMap) {
236
192
  }
237
193
  throw new Error("Dependency lock occurred!");
238
194
  }
239
- //# sourceMappingURL=run.js.map
195
+ export function getTestMap() {
196
+ return allTests;
197
+ }
198
+ export function getFutureTestMap() {
199
+ return notTestedYet;
200
+ }
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxJQUFJLFFBQVEsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RCxJQUFJLFlBQVksR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVoRSxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFzQztJQUNwRSxLQUFLLElBQUksSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQy9CLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLElB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
@@ -0,0 +1,2 @@
1
+ export declare const TEST_CLASS_KEY: unique symbol;
2
+ //# sourceMappingURL=symbol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../src/symbol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAA2B,CAAC"}
package/dist/symbol.js ADDED
@@ -0,0 +1,2 @@
1
+ export const TEST_CLASS_KEY = Symbol("TEST_CLASS_KEY");
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMifQ==
@@ -0,0 +1,37 @@
1
+ import { BaseTest, type TestClassInfo } from "./core.js";
2
+ export interface IDependency {
3
+ propertyKey: string;
4
+ dependency: TestWrap;
5
+ }
6
+ export interface ISpec {
7
+ }
8
+ export interface IHook {
9
+ type: HookType;
10
+ }
11
+ export interface ISkip {
12
+ reason: string;
13
+ }
14
+ export declare class TestWrap {
15
+ target: new () => BaseTest;
16
+ dependencies: IDependency[];
17
+ dependents: TestWrap[];
18
+ skip: Map<string, ISkip>;
19
+ skipClass: ISkip | null;
20
+ specs: Map<string, ISpec>;
21
+ hooks: Map<string, IHook>;
22
+ isFinished: boolean;
23
+ cleanUpCalled: boolean;
24
+ testInstance: any;
25
+ specDetection: boolean;
26
+ config: TestClassInfo;
27
+ constructor(target: new () => BaseTest);
28
+ get name(): string;
29
+ }
30
+ export declare enum HookType {
31
+ Before = 0,// Trigger when test case is ready to handle
32
+ After = 1,// Trigger when test case did all the specs
33
+ BeforeEach = 2,// Trigger before each spec
34
+ AfterEach = 3,// Trigger after each spec
35
+ CleanUp = 4
36
+ }
37
+ //# sourceMappingURL=test-wrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-wrap.d.ts","sourceRoot":"","sources":["../src/test-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAGzD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,qBAAa,QAAQ;IAaA,MAAM,EAAE,UAAU,QAAQ;IAZ7C,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAC5B,IAAI,qBAA4B;IAChC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC/B,KAAK,qBAA4B;IACjC,KAAK,qBAA4B;IACjC,UAAU,EAAE,OAAO,CAAS;IAC5B,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,OAAO,CAAS;IAC/B,MAAM,EAAE,aAAa,CAAC;gBAEH,MAAM,EAAE,UAAU,QAAQ;IAI7C,IAAI,IAAI,WAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA,CAAE,4CAA4C;IACpD,KAAK,IAAA,CAAE,2CAA2C;IAClD,UAAU,IAAA,CAAE,2BAA2B;IACvC,SAAS,IAAA,CAAE,0BAA0B;IACrC,OAAO,IAAA;CACR"}
@@ -0,0 +1,30 @@
1
+ import { BaseTest } from "./core.js";
2
+ import { TEST_CLASS_KEY } from "./symbol.js";
3
+ // Old code, but works fine, so I won't change it for now
4
+ export class TestWrap {
5
+ constructor(target) {
6
+ this.target = target;
7
+ this.dependencies = [];
8
+ this.dependents = [];
9
+ this.skip = new Map();
10
+ this.skipClass = null;
11
+ this.specs = new Map();
12
+ this.hooks = new Map();
13
+ this.isFinished = false; // cleanup ignored
14
+ this.cleanUpCalled = false;
15
+ this.specDetection = false;
16
+ this.config = target[TEST_CLASS_KEY];
17
+ }
18
+ get name() {
19
+ return this.target.name;
20
+ }
21
+ }
22
+ export var HookType;
23
+ (function (HookType) {
24
+ HookType[HookType["Before"] = 0] = "Before";
25
+ HookType[HookType["After"] = 1] = "After";
26
+ HookType[HookType["BeforeEach"] = 2] = "BeforeEach";
27
+ HookType[HookType["AfterEach"] = 3] = "AfterEach";
28
+ HookType[HookType["CleanUp"] = 4] = "CleanUp";
29
+ })(HookType || (HookType = {}));
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3Qtd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBaUI3Qyx5REFBeUQ7QUFDekQsTUFBTSxPQUFPLFFBQVE7SUFhbkIsWUFBbUIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFaN0MsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2hDLGNBQVMsR0FBaUIsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUNqQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDakMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtCQUFrQjtRQUMvQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUk3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQU4sSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDJDQUFNLENBQUE7SUFDTix5Q0FBSyxDQUFBO0lBQ0wsbURBQVUsQ0FBQTtJQUNWLGlEQUFTLENBQUE7SUFDVCw2Q0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQU5XLFFBQVEsS0FBUixRQUFRLFFBTW5CIn0=
@@ -17,4 +17,4 @@ export function Executor(fn, timeout) {
17
17
  resolve();
18
18
  });
19
19
  }
20
- //# sourceMappingURL=executor.js.map
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZXhlY3V0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxVQUFVLFFBQVEsQ0FBQyxFQUFZLEVBQUUsT0FBZTtJQUNwRCxPQUFPLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7UUFDM0MsSUFBSSxRQUFRLEdBQTBCLElBQUksQ0FBQztRQUUzQyxJQUFJLENBQUM7WUFDSCxJQUFJLGFBQWEsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUN6QixJQUFJLGFBQWEsSUFBSSxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3hDLFFBQVEsR0FBRyxVQUFVLENBQUM7b0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQywyQkFBMkIsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUMzRCxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRVosTUFBTSxhQUFhLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ1osQ0FBQztRQUVELFlBQVksQ0FBQyxRQUFTLENBQUMsQ0FBQztRQUV4QixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyJ9
@@ -1,6 +1,8 @@
1
- export declare class ExecutorTest {
1
+ declare const ExecutorTest_base: new () => {} & import("../core.js").BaseTest;
2
+ export declare class ExecutorTest extends ExecutorTest_base {
2
3
  evaluate(): Promise<void>;
3
4
  throws(): Promise<void>;
4
5
  timeout(): Promise<void>;
5
6
  }
7
+ export {};
6
8
  //# sourceMappingURL=executor.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/utils/executor.test.ts"],"names":[],"mappings":"AAIA,qBAAa,YAAY;IAEjB,QAAQ;IAMR,MAAM;IASN,OAAO;CAKd"}
1
+ {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/utils/executor.test.ts"],"names":[],"mappings":";AAIA,qBAAa,YAAa,SAAQ,iBAAM;IAChC,QAAQ;IAKR,MAAM;IAQN,OAAO;CAKd"}
@@ -1,16 +1,7 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __metadata = (this && this.__metadata) || function (k, v) {
8
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
- };
10
1
  import * as assert from "assert";
11
- import { Spec } from "../index.js";
12
2
  import { Executor } from "./executor.js";
13
- export class ExecutorTest {
3
+ import { Test } from "../index.js";
4
+ export class ExecutorTest extends Test() {
14
5
  async evaluate() {
15
6
  await Executor(() => 1, 1);
16
7
  await Executor(async () => 1, 1);
@@ -28,22 +19,4 @@ export class ExecutorTest {
28
19
  });
29
20
  }
30
21
  }
31
- __decorate([
32
- Spec(),
33
- __metadata("design:type", Function),
34
- __metadata("design:paramtypes", []),
35
- __metadata("design:returntype", Promise)
36
- ], ExecutorTest.prototype, "evaluate", null);
37
- __decorate([
38
- Spec(),
39
- __metadata("design:type", Function),
40
- __metadata("design:paramtypes", []),
41
- __metadata("design:returntype", Promise)
42
- ], ExecutorTest.prototype, "throws", null);
43
- __decorate([
44
- Spec(),
45
- __metadata("design:type", Function),
46
- __metadata("design:paramtypes", []),
47
- __metadata("design:returntype", Promise)
48
- ], ExecutorTest.prototype, "timeout", null);
49
- //# sourceMappingURL=executor.test.js.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9leGVjdXRvci50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuQyxNQUFNLE9BQU8sWUFBYSxTQUFRLElBQUksRUFBRTtJQUN0QyxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQixNQUFNLFFBQVEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixNQUFNLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFO1lBQ3hCLE9BQU8sUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7WUFDeEIsT0FBTyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YifQ==
@@ -1,7 +1,16 @@
1
+ /**
2
+ * Calculates the time difference in nanoseconds
3
+ */
1
4
  export declare class TimeDifference {
2
5
  private startAt;
3
6
  private constructor();
7
+ /**
8
+ * Creates the instance at the begining
9
+ */
4
10
  static begin(): TimeDifference;
11
+ /**
12
+ * Finishes the time, returns data in milliseconds
13
+ */
5
14
  end(): number;
6
15
  }
7
16
  //# sourceMappingURL=time_difference.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time_difference.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAGA,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO;WAOO,KAAK;IAOnB,GAAG,IAAI,MAAM;CAKd"}
1
+ {"version":3,"file":"time_difference.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO;IAIP;;OAEG;WACW,KAAK;IAInB;;OAEG;IACH,GAAG,IAAI,MAAM;CAKd"}
@@ -1,13 +1,22 @@
1
+ /**
2
+ * Calculates the time difference in nanoseconds
3
+ */
1
4
  export class TimeDifference {
2
5
  constructor() {
3
6
  this.startAt = process.hrtime();
4
7
  }
8
+ /**
9
+ * Creates the instance at the begining
10
+ */
5
11
  static begin() {
6
12
  return new TimeDifference();
7
13
  }
14
+ /**
15
+ * Finishes the time, returns data in milliseconds
16
+ */
8
17
  end() {
9
18
  let diff = process.hrtime(this.startAt);
10
19
  return diff[0] * 1000 + diff[1] / 1e6;
11
20
  }
12
21
  }
13
- //# sourceMappingURL=time_difference.js.map
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZV9kaWZmZXJlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3RpbWVfZGlmZmVyZW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxjQUFjO0lBR3pCO1FBQ0UsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEtBQUs7UUFDakIsT0FBTyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILEdBQUc7UUFDRCxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQztJQUN4QyxDQUFDO0NBQ0YifQ==
@@ -1,4 +1,6 @@
1
- export declare class TimeDifferenceTest {
1
+ declare const TimeDifferenceTest_base: new () => {} & import("../core.js").BaseTest;
2
+ export declare class TimeDifferenceTest extends TimeDifferenceTest_base {
2
3
  evaluate(): Promise<void>;
3
4
  }
5
+ export {};
4
6
  //# sourceMappingURL=time_difference.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time_difference.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.test.ts"],"names":[],"mappings":"AAKA,qBAAa,kBAAkB;IAEvB,QAAQ;CAIf"}
1
+ {"version":3,"file":"time_difference.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.test.ts"],"names":[],"mappings":";AAKA,qBAAa,kBAAmB,SAAQ,uBAAM;IACtC,QAAQ;CAIf"}