nole 1.0.11 → 2.0.1

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 (52) hide show
  1. package/README.md +6 -0
  2. package/bin/nole.js +22 -22
  3. package/dist/data.d.ts +1 -1
  4. package/dist/data.d.ts.map +1 -1
  5. package/dist/data.js +1 -4
  6. package/dist/data.js.map +1 -1
  7. package/dist/decorators.d.ts +1 -1
  8. package/dist/decorators.d.ts.map +1 -1
  9. package/dist/decorators.js +9 -16
  10. package/dist/decorators.js.map +1 -1
  11. package/dist/dynamic.d.ts +2 -0
  12. package/dist/dynamic.d.ts.map +1 -0
  13. package/dist/dynamic.js +11 -0
  14. package/dist/dynamic.js.map +1 -0
  15. package/dist/index.d.ts +3 -2
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -10
  18. package/dist/index.js.map +1 -1
  19. package/dist/run.d.ts.map +1 -1
  20. package/dist/run.js +38 -33
  21. package/dist/run.js.map +1 -1
  22. package/dist/test.d.ts +2 -1
  23. package/dist/test.d.ts.map +1 -1
  24. package/dist/test.js +4 -6
  25. package/dist/test.js.map +1 -1
  26. package/dist/utils/executor.d.ts +1 -1
  27. package/dist/utils/executor.d.ts.map +1 -1
  28. package/dist/utils/executor.js +1 -4
  29. package/dist/utils/executor.js.map +1 -1
  30. package/dist/utils/time_difference.js +1 -4
  31. package/dist/utils/time_difference.js.map +1 -1
  32. package/dist/utils/time_factor.d.ts +1 -1
  33. package/dist/utils/time_factor.d.ts.map +1 -1
  34. package/dist/utils/time_factor.js +5 -9
  35. package/dist/utils/time_factor.js.map +1 -1
  36. package/package.json +34 -33
  37. package/src/data.ts +1 -1
  38. package/src/decorators.ts +2 -2
  39. package/src/dynamic.ts +11 -0
  40. package/src/index.ts +3 -2
  41. package/src/run.ts +27 -16
  42. package/src/test.ts +3 -1
  43. package/src/utils/executor.ts +1 -1
  44. package/src/utils/time_factor.ts +3 -1
  45. package/test/basic.test.ts +1 -1
  46. package/test/clean-up.test.ts +1 -1
  47. package/test/dynamic-skip.test.ts +8 -0
  48. package/test/dynamic.test.ts +1 -1
  49. package/test/hook.test.ts +1 -1
  50. package/test/skip-all.test.ts +2 -2
  51. package/test/tsconfig.json +3 -4
  52. package/tsconfig.json +4 -4
package/README.md CHANGED
@@ -5,6 +5,10 @@ Nole
5
5
 
6
6
  Nole is a testing platform just like mocha.. You can create test classes and declare specs with decorators..
7
7
 
8
+ > Use nole 2.x for ESM and Typescript.
9
+
10
+ > Use nole 1.x for CommonJS. (ability to disable Typescript with -T option)
11
+
8
12
  ```ts
9
13
  // test/queue.test.ts
10
14
  import { Spec } from 'nole';
@@ -258,6 +262,8 @@ We do not provide assert library. You can use chai or should.js.
258
262
 
259
263
  ## Compiled files
260
264
 
265
+ > Deprecated (v2.x+), It will always use ts-node/esm module
266
+
261
267
  You can run the compiled test files with `-T` option.
262
268
 
263
269
  ```bash
package/bin/nole.js CHANGED
@@ -1,19 +1,20 @@
1
- #!/usr/bin/env node
1
+ #!/usr/bin/env node --loader=ts-node/esm
2
2
 
3
- const program = require('commander');
4
- const glob = require('glob');
5
- const path = require('path');
6
- const colors = require('colors/safe');
7
- const package = require('../package.json');
8
- const { ManualRun } = require('../dist/run');
9
- const { TimeDifference } = require('../dist/utils/time_difference');
10
- const { TimeResolve } = require('../dist/utils/time_factor');
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 { ManualRun } from '../dist/run.js';
9
+ import { TimeDifference } from '../dist/utils/time_difference.js';
10
+ import { TimeResolve } from '../dist/utils/time_factor.js';
11
+
12
+ const pkg = JSON.parse(fs.readFileSync(new URL('../package.json', import.meta.url)).toString())
11
13
 
12
14
  program
13
15
  .usage('<glob> ...')
14
- .option('-T, --no-typescript', 'disable ts-node register')
15
16
  .option('-L, --no-log', 'disable console.log')
16
- .version(package.version)
17
+ .version(pkg.version)
17
18
  .parse(process.argv);
18
19
 
19
20
 
@@ -23,7 +24,7 @@ if (!program.args.length) {
23
24
  let time = TimeDifference.begin();
24
25
 
25
26
  let log = console.log.bind(console);
26
-
27
+
27
28
  if (!program.log) {
28
29
  console.log = function () { }
29
30
  }
@@ -36,7 +37,7 @@ if (!program.args.length) {
36
37
 
37
38
  resolve(matches);
38
39
  })
39
- }))).then(list => {
40
+ }))).then(async list => {
40
41
  let fileList = [];
41
42
 
42
43
  for (let item of list) {
@@ -50,25 +51,24 @@ if (!program.args.length) {
50
51
 
51
52
  let file = time.end();
52
53
 
53
- if (program.typescript) {
54
- require('ts-node').register();
55
- }
56
-
57
54
  for (let file of fileList) {
58
- require(file);
55
+ await import(`file://${file}`);
59
56
  }
60
57
 
61
58
  let prop = time.end();
62
59
 
63
- log('Nole tests v' + package.version);
64
- ManualRun(log).then(() => {
60
+ log('Nole tests v' + pkg.version);
61
+ try {
62
+ await ManualRun(log);
63
+
65
64
  log(' discover: %s', TimeResolve(file))
66
65
  log(' resolve: %s', TimeResolve(prop - file))
67
66
  log(' tests: %s', TimeResolve(time.end() - prop))
68
67
  process.exit(0);
69
- }).catch(e => {
68
+ } catch(e) {
69
+ console.error(e);
70
70
  process.exit(1);
71
- })
71
+ }
72
72
  }).catch(e => {
73
73
  failed('Error occurred on resolving files');
74
74
  console.error(e.stack || e);
package/dist/data.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { Test } from "./test";
1
+ import { Test } from "./test.js";
2
2
  export declare function HashMap(): Map<any, Test>;
3
3
  //# sourceMappingURL=data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAI9B,wBAAgB,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAQxC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,wBAAgB,OAAO,IAAI,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAQxC"}
package/dist/data.js CHANGED
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  const KEY = '_nole_hash';
4
- function HashMap() {
2
+ export function HashMap() {
5
3
  let g = global || {};
6
4
  if (g[KEY]) {
7
5
  return g[KEY];
8
6
  }
9
7
  return g[KEY] = new Map();
10
8
  }
11
- exports.HashMap = HashMap;
12
9
  //# sourceMappingURL=data.js.map
package/dist/data.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":";;AAEA,MAAM,GAAG,GAAG,YAAY,CAAC;AAEzB,SAAgB,OAAO;IACrB,IAAI,CAAC,GAAQ,MAAM,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;QACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACf;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAa,CAAC;AACvC,CAAC;AARD,0BAQC"}
1
+ {"version":3,"file":"data.js","sourceRoot":"","sources":["../src/data.ts"],"names":[],"mappings":"AAEA,MAAM,GAAG,GAAG,YAAY,CAAC;AAEzB,MAAM,UAAU,OAAO;IACrB,IAAI,CAAC,GAAQ,MAAM,IAAI,EAAE,CAAC;IAE1B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;QACV,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;KACf;IAED,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAa,CAAC;AACvC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { HookType, ClassDefition } from "./test";
1
+ import { HookType, ClassDefition } from "./test.js";
2
2
  export declare function Spec(timeout?: number): MethodDecorator;
3
3
  export declare function Dependency<T>(dependency: ClassDefition<T>): PropertyDecorator;
4
4
  export declare function Hook(type: HookType, timeout?: number): MethodDecorator;
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAMvD,wBAAgB,IAAI,CAAC,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5D;AAOD,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAI7E;AAQD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5E;AAOD,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAIrD;AAMD,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAIzD"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,QAAQ,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1D,wBAAgB,IAAI,CAAC,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5D;AAOD,wBAAgB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAI7E;AAQD,wBAAgB,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,GAAE,MAAa,GAAG,eAAe,CAI5E;AAOD,wBAAgB,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,eAAe,CAIrD;AAMD,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,CAIzD"}
@@ -1,41 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const data_1 = require("./data");
4
- const test_1 = require("./test");
5
- function Spec(timeout = 5000) {
1
+ import { HashMap } from "./data.js";
2
+ import { Test } from "./test.js";
3
+ export function Spec(timeout = 5000) {
6
4
  return function (target, propertyKey) {
7
5
  DeclareSpecForTestClass(target, propertyKey, timeout);
8
6
  };
9
7
  }
10
- exports.Spec = Spec;
11
- function Dependency(dependency) {
8
+ export function Dependency(dependency) {
12
9
  return function (target, propertyKey) {
13
10
  DeclareDependencyForTestClass(target, propertyKey, dependency);
14
11
  };
15
12
  }
16
- exports.Dependency = Dependency;
17
- function Hook(type, timeout = 5000) {
13
+ export function Hook(type, timeout = 5000) {
18
14
  return function (target, propertyKey) {
19
15
  DeclareHookForTestClass(target, propertyKey, type, timeout);
20
16
  };
21
17
  }
22
- exports.Hook = Hook;
23
- function Skip(reason) {
18
+ export function Skip(reason) {
24
19
  return function (target, propertyKey) {
25
20
  DeclareAsSkipped(target, propertyKey, reason ? reason : '');
26
21
  };
27
22
  }
28
- exports.Skip = Skip;
29
- function SkipClass(reason) {
23
+ export function SkipClass(reason) {
30
24
  return function (target) {
31
25
  DeclareAsSkippedClass(target, reason ? reason : '');
32
26
  };
33
27
  }
34
- exports.SkipClass = SkipClass;
35
28
  function GetTestInstanceOfTarget(target) {
36
- let instance = data_1.HashMap().get(target);
29
+ let instance = HashMap().get(target);
37
30
  if (!instance) {
38
- data_1.HashMap().set(target, instance = new test_1.Test(target));
31
+ HashMap().set(target, instance = new Test(target));
39
32
  }
40
33
  return instance;
41
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decorators.js","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function skipTest(reason?: string): void;
2
+ //# sourceMappingURL=dynamic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic.d.ts","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,QAEvC"}
@@ -0,0 +1,11 @@
1
+ export function skipTest(reason) {
2
+ throw new NoleManualSkip(reason);
3
+ }
4
+ class NoleManualSkip extends Error {
5
+ constructor(reason) {
6
+ super(`Dynamicly skipped! ${reason}`);
7
+ this.reason = reason;
8
+ this._nole_anchor = 1;
9
+ }
10
+ }
11
+ //# sourceMappingURL=dynamic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../src/dynamic.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,MAAe;IACtC,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,cAAe,SAAQ,KAAK;IAGhC,YAAmB,MAAe;QAChC,KAAK,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;QADrB,WAAM,GAAN,MAAM,CAAS;QAFlC,iBAAY,GAAG,CAAC,CAAC;IAIjB,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators';
2
- export { HookType } from './test';
1
+ export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
2
+ export { HookType } from './test.js';
3
+ export { skipTest } from './dynamic.js';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var decorators_1 = require("./decorators");
4
- exports.Dependency = decorators_1.Dependency;
5
- exports.Spec = decorators_1.Spec;
6
- exports.Hook = decorators_1.Hook;
7
- exports.Skip = decorators_1.Skip;
8
- exports.SkipClass = decorators_1.SkipClass;
9
- var test_1 = require("./test");
10
- exports.HookType = test_1.HookType;
1
+ export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
2
+ export { HookType } from './test.js';
3
+ export { skipTest } from './dynamic.js';
11
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,2CAAuE;AAA9D,kCAAA,UAAU,CAAA;AAAE,4BAAA,IAAI,CAAA;AAAE,4BAAA,IAAI,CAAA;AAAE,4BAAA,IAAI,CAAA;AAAE,iCAAA,SAAS,CAAA;AAChD,+BAAkC;AAAzB,0BAAA,QAAQ,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC"}
package/dist/run.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAYA,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,iBAyCtC"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../src/run.ts"],"names":[],"mappings":"AAeA,wBAAgB,SAAS,CAAC,GAAG,EAAE,QAAQ,iBA2CtC"}
package/dist/run.js CHANGED
@@ -1,22 +1,22 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const data_1 = require("./data");
4
- const time_difference_1 = require("./utils/time_difference");
5
- const time_factor_1 = require("./utils/time_factor");
6
- const colors = require("colors/safe");
7
- const executor_1 = require("./utils/executor");
8
- const test_1 = require("./test");
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;
9
8
  const OK_TEXT = colors.bold(colors.green(' (ok) '));
10
9
  const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
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
- function ManualRun(log) {
13
+ export function ManualRun(log) {
14
14
  if (!log) {
15
15
  log = console.log.bind(console);
16
16
  }
17
17
  return new Promise(async (resolve, reject) => {
18
18
  try {
19
- let hashMap = new Map(data_1.HashMap());
19
+ let hashMap = new Map(HashMap());
20
20
  if (!hashMap.size) {
21
21
  log(`${FAILED_TEXT} no specs found`);
22
22
  throw new Error('No specs found');
@@ -30,10 +30,11 @@ function ManualRun(log) {
30
30
  await HandleBeforeHooks(test);
31
31
  await HandleSpecs(test, log);
32
32
  await HandleAfterHooks(test);
33
+ test.isFinished = true;
33
34
  if (test.dependents.length == 0) {
34
35
  await HandleCleanUp(test);
35
36
  }
36
- test.isFinished = true;
37
+ test.isFullyFinished = true;
37
38
  }
38
39
  else {
39
40
  DependencyLock(hashMap);
@@ -46,7 +47,6 @@ function ManualRun(log) {
46
47
  }
47
48
  });
48
49
  }
49
- exports.ManualRun = ManualRun;
50
50
  function PickNextTestFromHashMap(hashMap) {
51
51
  for (let test of hashMap.values()) {
52
52
  if (test.isFinished)
@@ -68,45 +68,45 @@ function HandleDependencies(test) {
68
68
  }
69
69
  async function HandleBeforeHooks(test) {
70
70
  for (let [propertyKey, hook] of test.hooks.entries()) {
71
- if (hook.type != test_1.HookType.Before)
71
+ if (hook.type != HookType.Before)
72
72
  continue;
73
73
  try {
74
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
74
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
75
75
  }
76
76
  catch (e) {
77
77
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
78
78
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
79
- console.error(e.stack || e);
79
+ console.error(e?.stack ?? e);
80
80
  throw e;
81
81
  }
82
82
  }
83
83
  }
84
84
  async function HandleBeforeEachHooks(test) {
85
85
  for (let [propertyKey, hook] of test.hooks.entries()) {
86
- if (hook.type != test_1.HookType.BeforeEach)
86
+ if (hook.type != HookType.BeforeEach)
87
87
  continue;
88
88
  try {
89
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
89
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
90
90
  }
91
91
  catch (e) {
92
92
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
93
93
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
94
- console.error(e.stack || e);
94
+ console.error(e?.stack ?? e);
95
95
  throw e;
96
96
  }
97
97
  }
98
98
  }
99
99
  async function HandleAfterEachHooks(test) {
100
100
  for (let [propertyKey, hook] of test.hooks.entries()) {
101
- if (hook.type != test_1.HookType.AfterEach)
101
+ if (hook.type != HookType.AfterEach)
102
102
  continue;
103
103
  try {
104
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
104
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
105
105
  }
106
106
  catch (e) {
107
107
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
108
108
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
109
- console.error(e.stack || e);
109
+ console.error(e?.stack ?? e);
110
110
  throw e;
111
111
  }
112
112
  }
@@ -121,16 +121,21 @@ async function HandleSpecs(test, log) {
121
121
  continue;
122
122
  }
123
123
  await HandleBeforeEachHooks(test);
124
- let start = time_difference_1.TimeDifference.begin();
124
+ let start = TimeDifference.begin();
125
125
  try {
126
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
127
- let timeText = time_factor_1.TimeFactor(start.end(), spec.timeout);
126
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), spec.timeout);
127
+ let timeText = TimeFactor(start.end(), spec.timeout);
128
128
  log(`${OK_TEXT} ${timeText} ${testName}()`);
129
129
  }
130
130
  catch (e) {
131
- let timeText = time_factor_1.TimeFactor(start.end(), spec.timeout);
131
+ if (e?._nole_anchor) {
132
+ let reason = e.reason;
133
+ log(`${DYNAMIC_SKIP_TEXT} ${' '.repeat(8)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
134
+ continue;
135
+ }
136
+ let timeText = TimeFactor(start.end(), spec.timeout);
132
137
  console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
133
- console.error(e.stack || e);
138
+ console.error(e?.stack ?? e);
134
139
  throw e;
135
140
  }
136
141
  await HandleAfterEachHooks(test);
@@ -138,15 +143,15 @@ async function HandleSpecs(test, log) {
138
143
  }
139
144
  async function HandleAfterHooks(test) {
140
145
  for (let [propertyKey, hook] of test.hooks.entries()) {
141
- if (hook.type != test_1.HookType.After)
146
+ if (hook.type != HookType.After)
142
147
  continue;
143
148
  try {
144
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
149
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
145
150
  }
146
151
  catch (e) {
147
152
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
148
153
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
149
- console.error(e.stack || e);
154
+ console.error(e?.stack ?? e);
150
155
  throw e;
151
156
  }
152
157
  }
@@ -158,20 +163,20 @@ async function HandleCleanUp(test) {
158
163
  return;
159
164
  test.cleanUpCalled = true;
160
165
  for (let [propertyKey, hook] of test.hooks.entries()) {
161
- if (hook.type != test_1.HookType.CleanUp)
166
+ if (hook.type != HookType.CleanUp)
162
167
  continue;
163
168
  try {
164
- await executor_1.Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
169
+ await Executor(test.testInstance[propertyKey].bind(test.testInstance), hook.timeout);
165
170
  }
166
171
  catch (e) {
167
172
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
168
173
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
169
- console.error(e.stack || e);
174
+ console.error(e?.stack ?? e);
170
175
  throw e;
171
176
  }
172
177
  }
173
178
  for (let tree of test.dependencies) {
174
- HandleCleanUp(tree.dependency);
179
+ await HandleCleanUp(tree.dependency);
175
180
  }
176
181
  }
177
182
  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":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAQ,MAAM,WAAW,CAAC;AAE3C,MAAM,MAAM,GAAI,IAAY,CAAC,OAAO,CAAC;AAErC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;AACxD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;AAC3D,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;AAC1D,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEpE,MAAM,UAAU,SAAS,CAAC,GAAa;IACrC,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACjC;IAED,OAAO,IAAI,OAAO,CAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QACjD,IAAI;YACF,IAAI,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAEjC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;gBACjB,GAAG,CAAC,GAAG,WAAW,iBAAiB,CAAC,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;aACnC;YAED,OAAO,OAAO,CAAC,IAAI,EAAE;gBACnB,IAAI,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBAE5C,IAAI,IAAI,EAAE;oBACR,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5B,yBAAyB,CAAC,IAAI,CAAC,CAAC;oBAChC,kBAAkB,CAAC,IAAI,CAAC,CAAC;oBAEzB,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;oBAC7B,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;oBAE7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;oBAEvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,CAAC,EAAE;wBAC/B,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;qBAC3B;oBAED,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;iBAC7B;qBAAM;oBACL,cAAc,CAAC,OAAO,CAAC,CAAC;iBACzB;aACF;YAED,OAAO,EAAE,CAAC;SACX;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,uBAAuB,CAAC,OAAuB;IACtD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;QACjC,IAAI,IAAI,CAAC,UAAU;YAAE,SAAS;QAC9B,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,SAAS;QAErE,OAAO,IAAI,CAAC;KACb;AACH,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAU;IAC3C,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;QACtB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACvC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAU;IACpC,KAAK,IAAI,UAAU,IAAI,IAAI,CAAC,YAAY,EAAE;QACxC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC;KAChF;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAU;IACzC,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM;YAAE,SAAS;QAE3C,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEtF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YAExH,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,IAAU;IAC7C,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,UAAU;YAAE,SAAS;QAC/C,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEtF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,YAAY,CAAC,CAAC,CAAC,IAAI,WAAW,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;YAEpI,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,IAAU;IAC5C,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,SAAS;YAAE,SAAS;QAC9C,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEtF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAEjI,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,IAAU,EAAE,GAAa;IAClD,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,GAAG,WAAW,CAAC,CAAC,CAAC;QAEzE,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACtD,IAAI,kBAAkB,IAAI,IAAI,CAAC,SAAS,EAAE;YACxC,IAAI,MAAM,GAAG,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAU,CAAC,MAAM,CAAC;YAC9F,GAAG,CAAC,GAAG,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,SAAS;SACV;QAED,MAAM,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;QAEnC,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAErF,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAErD,GAAG,CAAC,GAAG,OAAO,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;SAC7C;QAAC,OAAO,CAAC,EAAE;YACV,IAAK,CAAS,EAAE,YAAY,EAAE;gBAC5B,IAAI,MAAM,GAAI,CAAS,CAAC,MAAM,CAAC;gBAC/B,GAAG,CAAC,GAAG,iBAAiB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,QAAQ,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/F,SAAS;aACV;YAED,IAAI,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAErD,OAAO,CAAC,KAAK,CAAC,GAAG,WAAW,IAAI,QAAQ,IAAI,QAAQ,IAAI,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;QAED,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;KAClC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,IAAU;IACxC,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,KAAK;YAAE,SAAS;QAC1C,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEtF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,IAAI,WAAW,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAErH,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;KACF;AACH,CAAC;AAGD,KAAK,UAAU,aAAa,CAAC,IAAU;IACrC,IAAI,IAAI,CAAC,aAAa;QAAE,OAAO;IAC/B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC;QAAE,OAAO;IAEtE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAE1B,KAAK,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE;QACpD,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,OAAO;YAAE,SAAS;QAC5C,IAAI;YACF,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAEtF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,IAAI,WAAW,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3H,OAAO,CAAC,KAAK,CAAC,GAAG,gBAAgB,IAAI,QAAQ,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,KAAK,CAAE,CAAS,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,CAAC;SACT;KACF;IAED,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;QAClC,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACtC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAuB;IAC7C,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC,CAAC;IAEvG,OAAO,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACrC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,EAAE;QAEjC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAChL;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC/C,CAAC"}
package/dist/test.d.ts CHANGED
@@ -21,10 +21,11 @@ export declare class Test {
21
21
  specs: Map<string, ISpec>;
22
22
  hooks: Map<string, IHook>;
23
23
  isFinished: boolean;
24
+ isFullyFinished: boolean;
24
25
  cleanUpCalled: boolean;
25
26
  testInstance: any;
26
27
  constructor(target: any);
27
- readonly name: any;
28
+ get name(): any;
28
29
  }
29
30
  export declare enum HookType {
30
31
  Before = 0,
@@ -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;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,CAAC;IACpB,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;gBAEC,MAAM,EAAE,GAAG;aAI1B,IAAI;CAGT;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;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,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;gBAEC,MAAM,EAAE,GAAG;IAK9B,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
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class Test {
1
+ export class Test {
4
2
  constructor(target) {
5
3
  this.target = target;
6
4
  this.dependencies = [];
@@ -11,18 +9,18 @@ class Test {
11
9
  this.hooks = new Map();
12
10
  this.cleanUpCalled = false;
13
11
  this.isFinished = false;
12
+ this.isFullyFinished = false;
14
13
  }
15
14
  get name() {
16
15
  return this.target.name;
17
16
  }
18
17
  }
19
- exports.Test = Test;
20
- var HookType;
18
+ export var HookType;
21
19
  (function (HookType) {
22
20
  HookType[HookType["Before"] = 0] = "Before";
23
21
  HookType[HookType["After"] = 1] = "After";
24
22
  HookType[HookType["BeforeEach"] = 2] = "BeforeEach";
25
23
  HookType[HookType["AfterEach"] = 3] = "AfterEach";
26
24
  HookType[HookType["CleanUp"] = 4] = "CleanUp";
27
- })(HookType = exports.HookType || (exports.HookType = {}));
25
+ })(HookType || (HookType = {}));
28
26
  //# sourceMappingURL=test.js.map
package/dist/test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAkBA,MAAa,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;QAEjC,kBAAa,GAAY,KAAK,CAAC;QAI7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;CACF;AAlBD,oBAkBC;AAED,IAAY,QAMX;AAND,WAAY,QAAQ;IAClB,2CAAM,CAAA;IACN,yCAAK,CAAA;IACL,mDAAU,CAAA;IACV,iDAAS,CAAA;IACT,6CAAO,CAAA;AACT,CAAC,EANW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAMnB"}
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;QAGjC,kBAAa,GAAY,KAAK,CAAC;QAI7B,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED,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,2 +1,2 @@
1
- export declare function Executor(fn: Function, timeout: number): Promise<{}>;
1
+ export declare function Executor(fn: Function, timeout: number): Promise<void>;
2
2
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,eAqBrD"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrE"}
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- function Executor(fn, timeout) {
1
+ export function Executor(fn, timeout) {
4
2
  return new Promise(async (resolve, reject) => {
5
3
  let _timeout = null;
6
4
  try {
@@ -19,5 +17,4 @@ function Executor(fn, timeout) {
19
17
  resolve();
20
18
  });
21
19
  }
22
- exports.Executor = Executor;
23
20
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":";;AAAA,SAAgB,QAAQ,CAAC,EAAY,EAAE,OAAe;IACpD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI;YACF,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE;gBACvC,QAAQ,GAAG,UAAU,CAAC;oBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC,EAAE,OAAO,CAAC,CAAC;gBAEZ,MAAM,aAAa,CAAC;aACrB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;QAED,YAAY,CAAC,QAAS,CAAC,CAAC;QAExB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC;AArBD,4BAqBC"}
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/utils/executor.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CAAC,EAAY,EAAE,OAAe;IACpD,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC3C,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI;YACF,IAAI,aAAa,GAAG,EAAE,EAAE,CAAC;YACzB,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE;gBACvC,QAAQ,GAAG,UAAU,CAAC;oBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,OAAO,CAAC,CAAC,CAAC;gBAC3D,CAAC,EAAE,OAAO,CAAC,CAAC;gBAEZ,MAAM,aAAa,CAAC;aACrB;SACF;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,CAAC,CAAC,CAAC,CAAC;SACX;QAED,YAAY,CAAC,QAAS,CAAC,CAAC;QAExB,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class TimeDifference {
1
+ export class TimeDifference {
4
2
  constructor() {
5
3
  this.startAt = process.hrtime();
6
4
  }
@@ -12,5 +10,4 @@ class TimeDifference {
12
10
  return diff[0] * 1000 + diff[1] / 1e6;
13
11
  }
14
12
  }
15
- exports.TimeDifference = TimeDifference;
16
13
  //# sourceMappingURL=time_difference.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time_difference.js","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":";;AAGA,MAAa,cAAc;IAGzB;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAMM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAMD,GAAG;QACD,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;CACF;AAxBD,wCAwBC"}
1
+ {"version":3,"file":"time_difference.js","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,cAAc;IAGzB;QACE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAMM,MAAM,CAAC,KAAK;QACjB,OAAO,IAAI,cAAc,EAAE,CAAC;IAC9B,CAAC;IAMD,GAAG;QACD,IAAI,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAExC,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;IACxC,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- export declare function TimeFactor(diff: number, timeout: number): string;
1
+ export declare function TimeFactor(diff: number, timeout: number): any;
2
2
  export declare function TimeResolve(ms: number): string;
3
3
  export declare function Delay(ms: number): Promise<void>;
4
4
  //# sourceMappingURL=time_factor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"time_factor.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAIvD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,UAKrC;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
1
+ {"version":3,"file":"time_factor.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"AAIA,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,OAIvD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,UAKrC;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C"}
@@ -1,15 +1,13 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const colors = require("colors/safe");
4
- function TimeFactor(diff, timeout) {
1
+ import * as clrs from 'colors/safe.js';
2
+ const colors = clrs.default;
3
+ export function TimeFactor(diff, timeout) {
5
4
  if (diff < timeout / 5)
6
5
  return colors.green(TimeResolve(diff).padStart(9, ' '));
7
6
  if (diff < timeout / 2)
8
7
  return colors.yellow(TimeResolve(diff).padStart(9, ' '));
9
8
  return colors.red(TimeResolve(diff).padStart(9, ' '));
10
9
  }
11
- exports.TimeFactor = TimeFactor;
12
- function TimeResolve(ms) {
10
+ export function TimeResolve(ms) {
13
11
  if (ms < 1000)
14
12
  return (ms * 100 | 0) / 100 + ' ms';
15
13
  if (ms < 60 * 1000)
@@ -18,9 +16,7 @@ function TimeResolve(ms) {
18
16
  return (ms / 600 | 0) / 100 + ' m';
19
17
  return (ms / 36000 | 0) / 100 + ' h';
20
18
  }
21
- exports.TimeResolve = TimeResolve;
22
- function Delay(ms) {
19
+ export function Delay(ms) {
23
20
  return new Promise(resolve => setTimeout(resolve, ms));
24
21
  }
25
- exports.Delay = Delay;
26
22
  //# sourceMappingURL=time_factor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time_factor.js","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":";;AAAA,sCAAsC;AAEtC,SAAgB,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAJD,gCAIC;AAED,SAAgB,WAAW,CAAC,EAAU;IACpC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACnD,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACvC,CAAC;AALD,kCAKC;AAED,SAAgB,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAFD,sBAEC"}
1
+ {"version":3,"file":"time_factor.js","sourceRoot":"","sources":["../../src/utils/time_factor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,gBAAgB,CAAC;AAEvC,MAAM,MAAM,GAAI,IAAY,CAAC,OAAO,CAAC;AAErC,MAAM,UAAU,UAAU,CAAC,IAAY,EAAE,OAAe;IACtD,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChF,IAAI,IAAI,GAAG,OAAO,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,IAAI,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC;IACnD,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IACtD,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;QAAE,OAAO,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,EAAU;IAC9B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC"}
package/package.json CHANGED
@@ -1,33 +1,34 @@
1
- {
2
- "name": "nole",
3
- "version": "1.0.11",
4
- "description": "Testing Library for Typescript projects",
5
- "main": "dist/index.js",
6
- "types": "dist/index.d.ts",
7
- "repository": {
8
- "type": "git",
9
- "url": "https://github.com/co3moz/nole"
10
- },
11
- "bin": {
12
- "nole": "./bin/nole.js"
13
- },
14
- "scripts": {
15
- "build": "tsc",
16
- "test": "node ./bin/nole.js ./test/**/*.test.ts"
17
- },
18
- "keywords": [
19
- "typescript",
20
- "test",
21
- "library"
22
- ],
23
- "author": "co3moz",
24
- "license": "ISC",
25
- "dependencies": {
26
- "@types/node": "^11.11.4",
27
- "colors": "^1.3.3",
28
- "commander": "^2.19.0",
29
- "glob": "^7.1.3",
30
- "ts-node": "^8.0.3",
31
- "typescript": "^3.3.4000"
32
- }
33
- }
1
+ {
2
+ "name": "nole",
3
+ "version": "2.0.1",
4
+ "type": "module",
5
+ "description": "Testing Library for Typescript projects",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/co3moz/nole"
11
+ },
12
+ "bin": {
13
+ "nole": "./bin/nole.js"
14
+ },
15
+ "scripts": {
16
+ "build": "tsc",
17
+ "test": "node --loader=ts-node/esm ./bin/nole.js ./test/**/*.test.ts"
18
+ },
19
+ "keywords": [
20
+ "typescript",
21
+ "test",
22
+ "library"
23
+ ],
24
+ "author": "co3moz",
25
+ "license": "ISC",
26
+ "dependencies": {
27
+ "@types/node": "^16.11.41",
28
+ "colors": "^1.3.3",
29
+ "commander": "^2.19.0",
30
+ "glob": "^7.2.3",
31
+ "ts-node": "^10.8.1",
32
+ "typescript": "^4.7.3"
33
+ }
34
+ }
package/src/data.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Test } from "./test";
1
+ import { Test } from "./test.js";
2
2
 
3
3
  const KEY = '_nole_hash';
4
4
 
package/src/decorators.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { HashMap } from "./data";
2
- import { Test, HookType, ClassDefition } from "./test";
1
+ import { HashMap } from "./data.js";
2
+ import { Test, HookType, ClassDefition } from "./test.js";
3
3
 
4
4
  /**
5
5
  * Assignes method as test case
package/src/dynamic.ts ADDED
@@ -0,0 +1,11 @@
1
+ export function skipTest(reason?: string) {
2
+ throw new NoleManualSkip(reason);
3
+ }
4
+
5
+ class NoleManualSkip extends Error {
6
+ _nole_anchor = 1;
7
+
8
+ constructor(public reason?: string) {
9
+ super(`Dynamicly skipped! ${reason}`);
10
+ }
11
+ }
package/src/index.ts CHANGED
@@ -1,3 +1,4 @@
1
1
 
2
- export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators';
3
- export { HookType } from './test';
2
+ export { Dependency, Spec, Hook, Skip, SkipClass } from './decorators.js';
3
+ export { HookType } from './test.js';
4
+ export { skipTest } from './dynamic.js';
package/src/run.ts CHANGED
@@ -1,12 +1,15 @@
1
- import { HashMap } from "./data";
2
- import { TimeDifference } from "./utils/time_difference";
3
- import { TimeFactor } from "./utils/time_factor";
4
- import * as colors from 'colors/safe';
5
- import { Executor } from "./utils/executor";
6
- import { HookType, Test } from "./test";
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, Test } from "./test.js";
7
+
8
+ const colors = (clrs as any).default;
7
9
 
8
10
  const OK_TEXT = colors.bold(colors.green(' (ok) '));
9
11
  const SKIP_TEXT = colors.bold(colors.yellow(' (skip) '));
12
+ const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(' (dskip) '));
10
13
  const FAILED_TEXT = colors.bold(colors.red(' (failed) '));
11
14
  const HOOK_FAILED_TEXT = colors.bold(colors.red(' (hook failed) '));
12
15
 
@@ -36,11 +39,13 @@ export function ManualRun(log: Function) {
36
39
  await HandleSpecs(test, log);
37
40
  await HandleAfterHooks(test);
38
41
 
42
+ test.isFinished = true;
43
+
39
44
  if (test.dependents.length == 0) {
40
45
  await HandleCleanUp(test);
41
46
  }
42
-
43
- test.isFinished = true;
47
+
48
+ test.isFullyFinished = true;
44
49
  } else {
45
50
  DependencyLock(hashMap);
46
51
  }
@@ -85,7 +90,7 @@ async function HandleBeforeHooks(test: Test) {
85
90
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'before' ? `.${propertyKey}:before` : ':before')));
86
91
 
87
92
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
88
- console.error(e.stack || e);
93
+ console.error((e as any)?.stack ?? e);
89
94
  throw e;
90
95
  }
91
96
  }
@@ -101,7 +106,7 @@ async function HandleBeforeEachHooks(test: Test) {
101
106
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'beforeEach' ? `.${propertyKey}:beforeEach` : ':beforeEach')));
102
107
 
103
108
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
104
- console.error(e.stack || e);
109
+ console.error((e as any)?.stack ?? e);
105
110
  throw e;
106
111
  }
107
112
  }
@@ -117,7 +122,7 @@ async function HandleAfterEachHooks(test: Test) {
117
122
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'afterEach' ? `.${propertyKey}:afterEach` : ':afterEach')));
118
123
 
119
124
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
120
- console.error(e.stack || e);
125
+ console.error((e as any)?.stack ?? e);
121
126
  throw e;
122
127
  }
123
128
  }
@@ -145,10 +150,16 @@ async function HandleSpecs(test: Test, log: Function) {
145
150
 
146
151
  log(`${OK_TEXT} ${timeText} ${testName}()`);
147
152
  } catch (e) {
153
+ if ((e as any)?._nole_anchor) {
154
+ let reason = (e as any).reason;
155
+ log(`${DYNAMIC_SKIP_TEXT} ${' '.repeat(8)} ${testName}() ${reason ? '{' + reason + '}' : ''}`);
156
+ continue;
157
+ }
158
+
148
159
  let timeText = TimeFactor(start.end(), spec.timeout);
149
160
 
150
161
  console.error(`${FAILED_TEXT} ${timeText} ${testName}()`);
151
- console.error(e.stack || e);
162
+ console.error((e as any)?.stack ?? e);
152
163
  throw e;
153
164
  }
154
165
 
@@ -166,7 +177,7 @@ async function HandleAfterHooks(test: Test) {
166
177
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'after' ? `.${propertyKey}:after` : ':after')));
167
178
 
168
179
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
169
- console.error(e.stack || e);
180
+ console.error((e as any)?.stack ?? e);
170
181
  throw e;
171
182
  }
172
183
  }
@@ -176,7 +187,7 @@ async function HandleAfterHooks(test: Test) {
176
187
  async function HandleCleanUp(test: Test) {
177
188
  if (test.cleanUpCalled) return;
178
189
  if (!test.dependents.every(dependent => dependent.isFinished)) return;
179
-
190
+
180
191
  test.cleanUpCalled = true;
181
192
 
182
193
  for (let [propertyKey, hook] of test.hooks.entries()) {
@@ -188,13 +199,13 @@ async function HandleCleanUp(test: Test) {
188
199
  let hookName = colors.bold(colors.yellow(test.name + (propertyKey != 'cleanUp' ? `.${propertyKey}:cleanUp` : ':cleanUp')));
189
200
 
190
201
  console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
191
- console.error(e.stack || e);
202
+ console.error((e as any)?.stack ?? e);
192
203
  throw e;
193
204
  }
194
205
  }
195
206
 
196
207
  for (let tree of test.dependencies) {
197
- HandleCleanUp(tree.dependency);
208
+ await HandleCleanUp(tree.dependency);
198
209
  }
199
210
  }
200
211
 
package/src/test.ts CHANGED
@@ -23,12 +23,14 @@ export class Test {
23
23
  skipClass: ISkip | null = null;
24
24
  specs = new Map<string, ISpec>();
25
25
  hooks = new Map<string, IHook>();
26
- isFinished: boolean;
26
+ isFinished: boolean; // cleanup ignored
27
+ isFullyFinished: boolean; // including cleanup
27
28
  cleanUpCalled: boolean = false;
28
29
  testInstance: any;
29
30
 
30
31
  constructor(public target: any) {
31
32
  this.isFinished = false;
33
+ this.isFullyFinished = false;
32
34
  }
33
35
 
34
36
  get name() {
@@ -1,4 +1,4 @@
1
- export function Executor(fn: Function, timeout: number) {
1
+ export function Executor(fn: Function, timeout: number): Promise<void> {
2
2
  return new Promise(async (resolve, reject) => {
3
3
  let _timeout = null;
4
4
 
@@ -1,4 +1,6 @@
1
- import * as colors from 'colors/safe';
1
+ import * as clrs from 'colors/safe.js';
2
+
3
+ const colors = (clrs as any).default;
2
4
 
3
5
  export function TimeFactor(diff: number, timeout: number) {
4
6
  if (diff < timeout / 5) return colors.green(TimeResolve(diff).padStart(9, ' '));
@@ -1,4 +1,4 @@
1
- import { Spec, Dependency } from "../src";
1
+ import { Spec, Dependency } from "../src/index.js";
2
2
 
3
3
  export class BasicTest {
4
4
  variable = 1;
@@ -1,4 +1,4 @@
1
- import { Spec, Dependency, Hook, HookType } from "../src";
1
+ import { Spec, Dependency, Hook, HookType } from "../src/index.js";
2
2
 
3
3
  export class CleanUpLayer1Test {
4
4
  data: any;
@@ -0,0 +1,8 @@
1
+ import { skipTest, Spec } from "../src/index.js";
2
+
3
+ export class DynamicSkipTest {
4
+ @Spec()
5
+ async thisShouldBeSkipped() {
6
+ skipTest('I don\'t like this test anymore!');
7
+ }
8
+ }
@@ -1,5 +1,5 @@
1
1
  import * as assert from 'assert';
2
- import { Spec } from "../src";
2
+ import { Spec } from "../src/index.js";
3
3
 
4
4
  export class DynamicTest {
5
5
  @Spec()
package/test/hook.test.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as assert from 'assert';
2
- import { Spec, Hook, Skip, HookType } from "../src";
2
+ import { Spec, Hook, Skip, HookType } from "../src/index.js";
3
3
 
4
4
  export class BasicTest {
5
5
  array: any[] = [1, 2, 3];
@@ -1,6 +1,6 @@
1
1
  import * as assert from 'assert';
2
- import { Spec, Skip } from "../src";
3
- import { SkipClass } from '../src/decorators';
2
+ import { Spec, Skip } from "../src/index.js";
3
+ import { SkipClass } from '../src/decorators.js';
4
4
 
5
5
  @SkipClass('skip all class')
6
6
  export class SkipAllTest {
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "es2017",
4
- "module": "commonjs",
3
+ "target": "es2020",
4
+ "module": "ES2020",
5
5
  "lib": [
6
- "es2017",
6
+ "es2020",
7
7
  "esnext"
8
8
  ],
9
9
  "declaration": true,
@@ -11,7 +11,6 @@
11
11
  "sourceMap": true,
12
12
  "outDir": "dist",
13
13
  "removeComments": true,
14
- "strict": true,
15
14
  "experimentalDecorators": true,
16
15
  "emitDecoratorMetadata": true
17
16
  },
package/tsconfig.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "target": "es2017",
4
- "module": "commonjs",
3
+ "target": "es2020",
4
+ "module": "es2020",
5
+ "moduleResolution": "node",
5
6
  "lib": [
6
- "es2017",
7
+ "es2020",
7
8
  "esnext"
8
9
  ],
9
10
  "declaration": true,
@@ -11,7 +12,6 @@
11
12
  "sourceMap": true,
12
13
  "outDir": "dist",
13
14
  "removeComments": true,
14
- "strict": true,
15
15
  "experimentalDecorators": true,
16
16
  "emitDecoratorMetadata": true
17
17
  },