nole 2.0.2 → 2.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.
package/README.md CHANGED
@@ -286,6 +286,38 @@ Connection closed!
286
286
 
287
287
  We do not provide assert library. You can use chai or should.js.
288
288
 
289
+ ## Debugging
290
+
291
+ Having cleanup features with missing dependencies could lead to issues and time loses. To make sure execution of tests correct, use `-O` parameter to print out every spec and hook without calling the function. It will also print before/after hook orders.
292
+
293
+ ```bash
294
+ $ nole -O ./test/**/*.test.ts
295
+ (skip) SkipAllTest.wontRun() {skip all class}
296
+ (skip) SkipAllTest.wontRunToo() {wont run too}
297
+ (skip) SkipAllWithoutReason.wontRun()
298
+ (ok) 0 ms BasicTest.checkEqual()
299
+ (ok) 0 ms DependencyTest.check()
300
+ (ok) 0 ms CleanUpLayer1Test.start()
301
+ (ok) 0 ms CleanUpLayer2Test.start()
302
+ (ok) 0 ms CleanUpLayer3Test.start()
303
+ (ok) 0 ms DynamicSkipTest.thisShouldBeSkipped()
304
+ (ok) 0 ms HookTest.pushFourIntoArray:beforeEach()
305
+ (ok) 0 ms HookTest.hasToBe4()
306
+ (skip) HookTest.hasToBe4Again() {no need}
307
+ (ok) 0 ms HookTest.pushFourIntoArray:beforeEach()
308
+ (ok) 0.03 ms HookTest.hasToBe4AgainButNotSkipped()
309
+ (ok) 0 ms MultiDependency.test()
310
+ (ok) 0 ms CleanUpLayer3Test:cleanUp()
311
+ (ok) 0 ms CleanUpLayer2Test:cleanUp()
312
+ (ok) 0 ms CleanUpLayer1Test:cleanUp()
313
+ (ok) 0 ms DynamicTest.thisTestsShouldNotFail()
314
+ (ok) 0 ms TimeFactorTest.evaluate()
315
+ (ok) 0 ms TimeDifferenceTest.evaluate()
316
+ (ok) 0 ms ExecutorTest.evaluate()
317
+ (ok) 0 ms ExecutorTest.throws()
318
+ (ok) 0 ms ExecutorTest.timeout()
319
+ ```
320
+
289
321
  ## Compiled files
290
322
 
291
323
  > Deprecated (v2.x+), It will always use ts-node/esm module
@@ -299,4 +331,4 @@ $ nole -T ./build/test/**/*.test.js
299
331
  (ok) 1.09 ms QueueTest.Pipe()
300
332
  ```
301
333
 
302
- > This will prevent to load ts-node register. It will be quite faster.
334
+ > This will prevent to load ts-node register. It will be quite faster.
package/bin/nole.js CHANGED
@@ -14,6 +14,7 @@ const pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.ur
14
14
  program
15
15
  .usage('<glob> ...')
16
16
  .option('-L, --no-log', 'disable console.log')
17
+ .option('-O, --order-debug', 'shows execution order')
17
18
  .version(pkg.version)
18
19
  .parse(process.argv);
19
20
 
@@ -59,13 +60,16 @@ if (!program.args.length) {
59
60
 
60
61
  log('Nole tests v' + pkg.version);
61
62
  try {
62
- await ManualRun(log);
63
+ await ManualRun({
64
+ log,
65
+ orderDebug: program.orderDebug
66
+ });
63
67
 
64
68
  log(' discover: %s', TimeResolve(file))
65
69
  log(' resolve: %s', TimeResolve(prop - file))
66
70
  log(' tests: %s', TimeResolve(time.end() - prop))
67
71
  process.exit(0);
68
- } catch(e) {
72
+ } catch (e) {
69
73
  console.error(e);
70
74
  process.exit(1);
71
75
  }
package/dist/run.d.ts CHANGED
@@ -1,2 +1,7 @@
1
- export declare function ManualRun(log: Function): Promise<void>;
1
+ interface Options {
2
+ log: Function;
3
+ orderDebug: boolean;
4
+ }
5
+ export declare function ManualRun(options: Options): Promise<void>;
6
+ export {};
2
7
  //# sourceMappingURL=run.d.ts.map
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,iBA2CtC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,UAAU,OAAO;IACf,GAAG,EAAE,QAAQ,CAAC;IACd,UAAU,EAAE,OAAO,CAAA;CACpB;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,iBA2CzC"}
package/dist/run.js CHANGED
@@ -10,10 +10,11 @@ const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
10
10
  const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
11
11
  const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
12
12
  const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
13
- export function ManualRun(log) {
14
- if (!log) {
15
- log = console.log.bind(console);
13
+ export function ManualRun(options) {
14
+ if (!options.log) {
15
+ options.log = console.log.bind(console);
16
16
  }
17
+ const log = options.log;
17
18
  return new Promise(async (resolve, reject) => {
18
19
  try {
19
20
  let hashMap = new Map(HashMap());
@@ -27,14 +28,13 @@ export function ManualRun(log) {
27
28
  hashMap.delete(test.target);
28
29
  CreateInstanceIfNotExists(test);
29
30
  HandleDependencies(test);
30
- await HandleBeforeHooks(test);
31
- await HandleSpecs(test, log);
32
- await HandleAfterHooks(test);
31
+ await HandleBeforeHooks(test, options);
32
+ await HandleSpecs(test, options);
33
+ await HandleAfterHooks(test, options);
33
34
  test.isFinished = true;
34
35
  if (test.dependents.length == 0) {
35
- await HandleCleanUp(test, log);
36
+ await HandleCleanUp(test, options);
36
37
  }
37
- test.isFullyFinished = true;
38
38
  }
39
39
  else {
40
40
  DependencyLock(hashMap);
@@ -66,52 +66,71 @@ function HandleDependencies(test) {
66
66
  test.testInstance[dependency.propertyKey] = dependency.dependency.testInstance;
67
67
  }
68
68
  }
69
- async function HandleBeforeHooks(test) {
69
+ async function HandleBeforeHooks(test, options) {
70
70
  for (let [propertyKey, hook] of test.hooks.entries()) {
71
71
  if (hook.type != HookType.Before)
72
72
  continue;
73
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
73
74
  try {
74
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
75
+ if (!options.orderDebug) {
76
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
77
+ }
78
+ else {
79
+ let timeText = TimeFactor(0, hook.timeout);
80
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
81
+ }
75
82
  }
76
83
  catch (e) {
77
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
78
84
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
79
85
  console.error(e?.stack ?? e);
80
86
  throw e;
81
87
  }
82
88
  }
83
89
  }
84
- async function HandleBeforeEachHooks(test) {
90
+ async function HandleBeforeEachHooks(test, options) {
85
91
  for (let [propertyKey, hook] of test.hooks.entries()) {
86
92
  if (hook.type != HookType.BeforeEach)
87
93
  continue;
94
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
88
95
  try {
89
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
96
+ if (!options.orderDebug) {
97
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
98
+ }
99
+ else {
100
+ let timeText = TimeFactor(0, hook.timeout);
101
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
102
+ }
90
103
  }
91
104
  catch (e) {
92
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
93
105
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
94
106
  console.error(e?.stack ?? e);
95
107
  throw e;
96
108
  }
97
109
  }
98
110
  }
99
- async function HandleAfterEachHooks(test) {
111
+ async function HandleAfterEachHooks(test, options) {
100
112
  for (let [propertyKey, hook] of test.hooks.entries()) {
101
113
  if (hook.type != HookType.AfterEach)
102
114
  continue;
115
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
103
116
  try {
104
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
117
+ if (!options.orderDebug) {
118
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
119
+ }
120
+ else {
121
+ let timeText = TimeFactor(0, hook.timeout);
122
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
123
+ }
105
124
  }
106
125
  catch (e) {
107
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
108
126
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
109
127
  console.error(e?.stack ?? e);
110
128
  throw e;
111
129
  }
112
130
  }
113
131
  }
114
- async function HandleSpecs(test, log) {
132
+ async function HandleSpecs(test, options) {
133
+ const log = options.log;
115
134
  for (let [propertyKey, spec] of test.specs.entries()) {
116
135
  let testName = colors.bold(colors.yellow(test.name + '.' + propertyKey));
117
136
  const shouldPropertySkip = test.skip.has(propertyKey);
@@ -120,10 +139,12 @@ async function HandleSpecs(test, log) {
120
139
  log(`${SKIP_TEXT} ${' '.repeat(9)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
121
140
  continue;
122
141
  }
123
- await HandleBeforeEachHooks(test);
142
+ await HandleBeforeEachHooks(test, options);
124
143
  let start = TimeDifference.begin();
125
144
  try {
126
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
145
+ if (!options.orderDebug) {
146
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
147
+ }
127
148
  let timeText = TimeFactor(start.end(), spec.timeout);
128
149
  log(`${OK_TEXT} ${timeText} ${testName}()`);
129
150
  }
@@ -138,37 +159,46 @@ async function HandleSpecs(test, log) {
138
159
  console.error(e?.stack ?? e);
139
160
  throw e;
140
161
  }
141
- await HandleAfterEachHooks(test);
162
+ await HandleAfterEachHooks(test, options);
142
163
  }
143
164
  }
144
- async function HandleAfterHooks(test) {
165
+ async function HandleAfterHooks(test, options) {
145
166
  for (let [propertyKey, hook] of test.hooks.entries()) {
146
167
  if (hook.type != HookType.After)
147
168
  continue;
169
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
148
170
  try {
149
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
171
+ if (!options.orderDebug) {
172
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
173
+ }
174
+ else {
175
+ let timeText = TimeFactor(0, hook.timeout);
176
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
177
+ }
150
178
  }
151
179
  catch (e) {
152
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
153
180
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
154
181
  console.error(e?.stack ?? e);
155
182
  throw e;
156
183
  }
157
184
  }
158
185
  }
159
- async function HandleCleanUp(test, log) {
186
+ async function HandleCleanUp(test, options) {
160
187
  if (test.cleanUpCalled)
161
188
  return;
162
- if (!test.dependents.every(dependent => dependent.isFinished))
189
+ if (!test.dependents.every(dependent => dependent.isFinished && dependent.cleanUpCalled))
163
190
  return;
164
191
  test.cleanUpCalled = true;
192
+ const log = options.log;
165
193
  for (let [propertyKey, hook] of test.hooks.entries()) {
166
194
  if (hook.type != HookType.CleanUp)
167
195
  continue;
168
196
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
169
197
  let start = TimeDifference.begin();
170
198
  try {
171
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
199
+ if (!options.orderDebug) {
200
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
201
+ }
172
202
  let timeText = TimeFactor(start.end(), hook.timeout);
173
203
  log(`${OK_TEXT} ${timeText} ${hookName}()`);
174
204
  }
@@ -179,7 +209,7 @@ async function HandleCleanUp(test, log) {
179
209
  }
180
210
  }
181
211
  for (let tree of test.dependencies) {
182
- await HandleCleanUp(tree.dependency, log);
212
+ await HandleCleanUp(tree.dependency, options);
183
213
  }
184
214
  }
185
215
  function DependencyLock(hashMap) {
package/dist/run.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"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"}
package/dist/test.d.ts CHANGED
@@ -21,7 +21,6 @@ export declare class Test {
21
21
  specs: Map<string, ISpec>;
22
22
  hooks: Map<string, IHook>;
23
23
  isFinished: boolean;
24
- isFullyFinished: boolean;
25
24
  cleanUpCalled: boolean;
26
25
  testInstance: any;
27
26
  constructor(target: any);
@@ -1 +1 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,IAAI;IAYI,MAAM,EAAE,GAAG;IAX9B,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,IAAI,EAAE,CAAM;IACxB,IAAI,qBAA4B;IAChC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC/B,KAAK,qBAA4B;IACjC,KAAK,qBAA4B;IACjC,UAAU,EAAE,OAAO,CAAS;IAC5B,eAAe,EAAE,OAAO,CAAS;IACjC,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;gBAEC,MAAM,EAAE,GAAG;IAE9B,IAAI,IAAI,QAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA;IACN,KAAK,IAAA;IACL,UAAU,IAAA;IACV,SAAS,IAAA;IACT,OAAO,IAAA;CACR;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAAI,QAAO,CAAC,CAAC;CAAE"}
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,IAAI,CAAA;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,IAAI;IAWI,MAAM,EAAE,GAAG;IAV9B,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,IAAI,EAAE,CAAM;IACxB,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;gBAEC,MAAM,EAAE,GAAG;IAE9B,IAAI,IAAI,QAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA;IACN,KAAK,IAAA;IACL,UAAU,IAAA;IACV,SAAS,IAAA;IACT,OAAO,IAAA;CACR;AAED,MAAM,WAAW,aAAa,CAAC,CAAC;IAAI,QAAO,CAAC,CAAC;CAAE"}
package/dist/test.js CHANGED
@@ -8,7 +8,6 @@ export class Test {
8
8
  this.specs = new Map();
9
9
  this.hooks = new Map();
10
10
  this.isFinished = false;
11
- this.isFullyFinished = false;
12
11
  this.cleanUpCalled = false;
13
12
  }
14
13
  get name() {
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,IAAI;IAYf,YAAmB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAX9B,iBAAY,GAAkB,EAAE,CAAC;QACjC,eAAU,GAAW,EAAE,CAAC;QACxB,SAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;QAChC,cAAS,GAAiB,IAAI,CAAC;QAC/B,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACjC,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACjC,eAAU,GAAY,KAAK,CAAC;QAC5B,oBAAe,GAAY,KAAK,CAAC;QACjC,kBAAa,GAAY,KAAK,CAAC;IAGE,CAAC;IAElC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2CAAM,CAAA;IACN,yCAAK,CAAA;IACL,mDAAU,CAAA;IACV,iDAAS,CAAA;IACT,6CAAO,CAAA;AACT,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":"AAkBA,MAAM,OAAO,IAAI;IAWf,YAAmB,MAAW;QAAX,WAAM,GAAN,MAAM,CAAK;QAV9B,iBAAY,GAAkB,EAAE,CAAC;QACjC,eAAU,GAAW,EAAE,CAAC;QACxB,SAAI,GAAG,IAAI,GAAG,EAAiB,CAAC;QAChC,cAAS,GAAiB,IAAI,CAAC;QAC/B,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACjC,UAAK,GAAG,IAAI,GAAG,EAAiB,CAAC;QACjC,eAAU,GAAY,KAAK,CAAC;QAC5B,kBAAa,GAAY,KAAK,CAAC;IAGE,CAAC;IAElC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAED,MAAM,CAAN,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2CAAM,CAAA;IACN,yCAAK,CAAA;IACL,mDAAU,CAAA;IACV,iDAAS,CAAA;IACT,6CAAO,CAAA;AACT,CAAC,EANW,QAAQ,KAAR,QAAQ,QAMnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nole",
3
- "version": "2.0.2",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
5
  "description": "Testing Library for Typescript projects",
6
6
  "main": "dist/index.js",
package/src/run.ts CHANGED
@@ -13,11 +13,18 @@ const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
13
13
  const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
14
14
  const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
15
15
 
16
- export function ManualRun(log: Function) {
17
- if (!log) {
18
- log = console.log.bind(console);
16
+ interface Options {
17
+ log: Function,
18
+ orderDebug: boolean
19
+ }
20
+
21
+ export function ManualRun(options: Options) {
22
+ if (!options.log) {
23
+ options.log = console.log.bind(console);
19
24
  }
20
25
 
26
+ const log = options.log;
27
+
21
28
  return new Promise<void>(async (resolve, reject) => {
22
29
  try {
23
30
  let hashMap = new Map(HashMap());
@@ -35,17 +42,15 @@ export function ManualRun(log: Function) {
35
42
  CreateInstanceIfNotExists(test);
36
43
  HandleDependencies(test);
37
44
 
38
- await HandleBeforeHooks(test);
39
- await HandleSpecs(test, log);
40
- await HandleAfterHooks(test);
45
+ await HandleBeforeHooks(test, options);
46
+ await HandleSpecs(test, options);
47
+ await HandleAfterHooks(test, options);
41
48
 
42
49
  test.isFinished = true;
43
-
50
+
44
51
  if (test.dependents.length == 0) {
45
- await HandleCleanUp(test, log);
52
+ await HandleCleanUp(test, options);
46
53
  }
47
-
48
- test.isFullyFinished = true;
49
54
  } else {
50
55
  DependencyLock(hashMap);
51
56
  }
@@ -79,16 +84,22 @@ function HandleDependencies(test: Test) {
79
84
  }
80
85
  }
81
86
 
82
- async function HandleBeforeHooks(test: Test) {
87
+ async function HandleBeforeHooks(test: Test, options: Options) {
83
88
  for (let [propertyKey, hook] of test.hooks.entries()) {
84
89
  if (hook.type != HookType.Before) continue;
85
90
 
91
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
92
+
86
93
  try {
87
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
94
+ if (!options.orderDebug) {
95
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
96
+ } else {
97
+ let timeText = TimeFactor(0, hook.timeout);
88
98
 
89
- } catch (e) {
90
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
99
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
100
+ }
91
101
 
102
+ } catch (e) {
92
103
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
93
104
  console.error((e as any)?.stack ?? e);
94
105
  throw e;
@@ -96,14 +107,21 @@ async function HandleBeforeHooks(test: Test) {
96
107
  }
97
108
  }
98
109
 
99
- async function HandleBeforeEachHooks(test: Test) {
110
+ async function HandleBeforeEachHooks(test: Test, options: Options) {
100
111
  for (let [propertyKey, hook] of test.hooks.entries()) {
101
112
  if (hook.type != HookType.BeforeEach) continue;
113
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
114
+
102
115
  try {
103
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
116
+ if (!options.orderDebug) {
117
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
118
+ } else {
119
+ let timeText = TimeFactor(0, hook.timeout);
120
+
121
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
122
+ }
104
123
 
105
124
  } catch (e) {
106
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
107
125
 
108
126
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
109
127
  console.error((e as any)?.stack ?? e);
@@ -112,15 +130,22 @@ async function HandleBeforeEachHooks(test: Test) {
112
130
  }
113
131
  }
114
132
 
115
- async function HandleAfterEachHooks(test: Test) {
133
+ async function HandleAfterEachHooks(test: Test, options: Options) {
116
134
  for (let [propertyKey, hook] of test.hooks.entries()) {
117
135
  if (hook.type != HookType.AfterEach) continue;
136
+
137
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
138
+
118
139
  try {
119
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
140
+ if (!options.orderDebug) {
141
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
142
+ } else {
143
+ let timeText = TimeFactor(0, hook.timeout);
120
144
 
121
- } catch (e) {
122
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
145
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
146
+ }
123
147
 
148
+ } catch (e) {
124
149
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
125
150
  console.error((e as any)?.stack ?? e);
126
151
  throw e;
@@ -128,7 +153,9 @@ async function HandleAfterEachHooks(test: Test) {
128
153
  }
129
154
  }
130
155
 
131
- async function HandleSpecs(test: Test, log: Function) {
156
+ async function HandleSpecs(test: Test, options: Options) {
157
+ const log = options.log;
158
+
132
159
  for (let [propertyKey, spec] of test.specs.entries()) {
133
160
  let testName = colors.bold(colors.yellow(test.name + '.' + propertyKey));
134
161
 
@@ -139,12 +166,14 @@ async function HandleSpecs(test: Test, log: Function) {
139
166
  continue;
140
167
  }
141
168
 
142
- await HandleBeforeEachHooks(test);
169
+ await HandleBeforeEachHooks(test, options);
143
170
 
144
171
  let start = TimeDifference.begin();
145
172
 
146
173
  try {
147
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
174
+ if (!options.orderDebug) {
175
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
176
+ }
148
177
 
149
178
  let timeText = TimeFactor(start.end(), spec.timeout);
150
179
 
@@ -163,19 +192,26 @@ async function HandleSpecs(test: Test, log: Function) {
163
192
  throw e;
164
193
  }
165
194
 
166
- await HandleAfterEachHooks(test);
195
+ await HandleAfterEachHooks(test, options);
167
196
  }
168
197
  }
169
198
 
170
- async function HandleAfterHooks(test: Test) {
199
+ async function HandleAfterHooks(test: Test, options: Options) {
171
200
  for (let [propertyKey, hook] of test.hooks.entries()) {
172
201
  if (hook.type != HookType.After) continue;
202
+
203
+ let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
204
+
173
205
  try {
174
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
206
+ if (!options.orderDebug) {
207
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
208
+ } else {
209
+ let timeText = TimeFactor(0, hook.timeout);
175
210
 
176
- } catch (e) {
177
- let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
211
+ options.log(`${OK_TEXT} ${timeText} ${hookName}()`);
212
+ }
178
213
 
214
+ } catch (e) {
179
215
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
180
216
  console.error((e as any)?.stack ?? e);
181
217
  throw e;
@@ -184,20 +220,24 @@ async function HandleAfterHooks(test: Test) {
184
220
  }
185
221
 
186
222
 
187
- async function HandleCleanUp(test: Test, log: Function) {
223
+ async function HandleCleanUp(test: Test, options: Options) {
188
224
  if (test.cleanUpCalled) return;
189
- if (!test.dependents.every(dependent => dependent.isFinished)) return;
225
+ if (!test.dependents.every(dependent => dependent.isFinished && dependent.cleanUpCalled)) return;
190
226
 
191
227
  test.cleanUpCalled = true;
192
228
 
229
+ const log = options.log;
230
+
193
231
  for (let [propertyKey, hook] of test.hooks.entries()) {
194
232
  if (hook.type != HookType.CleanUp) continue;
195
-
233
+
196
234
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
197
235
  let start = TimeDifference.begin();
198
236
 
199
237
  try {
200
- await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
238
+ if (!options.orderDebug) {
239
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
240
+ }
201
241
 
202
242
  let timeText = TimeFactor(start.end(), hook.timeout);
203
243
 
@@ -210,7 +250,7 @@ async function HandleCleanUp(test: Test, log: Function) {
210
250
  }
211
251
 
212
252
  for (let tree of test.dependencies) {
213
- await HandleCleanUp(tree.dependency, log);
253
+ await HandleCleanUp(tree.dependency, options);
214
254
  }
215
255
  }
216
256
 
package/src/test.ts CHANGED
@@ -24,7 +24,6 @@ export class Test {
24
24
  specs = new Map<string, ISpec>();
25
25
  hooks = new Map<string, IHook>();
26
26
  isFinished: boolean = false; // cleanup ignored
27
- isFullyFinished: boolean = false; // including cleanup
28
27
  cleanUpCalled: boolean = false;
29
28
  testInstance: any;
30
29
 
package/test/hook.test.ts CHANGED
@@ -5,7 +5,7 @@ export class HookTest {
5
5
  array: any[] = [1, 2, 3];
6
6
 
7
7
  @Hook(HookType.BeforeEach)
8
- async beforeEach() {
8
+ async pushFourIntoArray() {
9
9
  this.array.push(4);
10
10
  }
11
11
 
@@ -1,4 +0,0 @@
1
- export declare class RunTest {
2
- evaluate(): Promise<void>;
3
- }
4
- //# sourceMappingURL=run.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.test.d.ts","sourceRoot":"","sources":["../src/run.test.ts"],"names":[],"mappings":"AAIA,qBAAa,OAAO;IAEZ,QAAQ;CAYf"}
package/dist/run.test.js DELETED
@@ -1,31 +0,0 @@
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
- import { HashMap } from "./data.js";
11
- import { Spec } from "./index.js";
12
- import { ManualRun } from "./run.js";
13
- export class RunTest {
14
- async evaluate() {
15
- const hashmap = HashMap();
16
- const backup = new Map(hashmap);
17
- hashmap.clear();
18
- await ManualRun(console.log);
19
- hashmap.clear();
20
- for (const [key, value] of backup.entries()) {
21
- hashmap.set(key, value);
22
- }
23
- }
24
- }
25
- __decorate([
26
- Spec(),
27
- __metadata("design:type", Function),
28
- __metadata("design:paramtypes", []),
29
- __metadata("design:returntype", Promise)
30
- ], RunTest.prototype, "evaluate", null);
31
- //# sourceMappingURL=run.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"run.test.js","sourceRoot":"","sources":["../src/run.test.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,MAAM,OAAO,OAAO;IAElB,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,CAAC,KAAK,EAAE,CAAA;QACf,MAAM,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzB;IACH,CAAC;CACF;AAZC;IADC,IAAI,EAAE;;;;uCAYN"}