nole 3.1.0 → 3.2.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 (47) hide show
  1. package/README.md +40 -0
  2. package/dist/cjs/const.js +45 -0
  3. package/dist/cjs/core.js +61 -0
  4. package/dist/cjs/dynamic.js +56 -0
  5. package/dist/cjs/handle/after-each-hooks.js +29 -0
  6. package/dist/cjs/handle/after-hooks.js +27 -0
  7. package/dist/cjs/handle/before-each-hooks.js +29 -0
  8. package/dist/cjs/handle/before-hooks.js +37 -0
  9. package/dist/cjs/handle/cleanup-hooks.js +37 -0
  10. package/dist/cjs/handle/specs.js +52 -0
  11. package/dist/cjs/index.js +15 -0
  12. package/dist/cjs/package.json +1 -0
  13. package/dist/cjs/run.js +216 -0
  14. package/dist/cjs/symbol.js +6 -0
  15. package/dist/cjs/test-wrap.js +33 -0
  16. package/dist/cjs/utils/executor.js +23 -0
  17. package/dist/cjs/utils/time_difference.js +26 -0
  18. package/dist/cjs/utils/time_factor.js +31 -0
  19. package/dist/core.d.ts +3 -1
  20. package/dist/core.d.ts.map +1 -1
  21. package/dist/core.js +2 -2
  22. package/dist/dynamic.d.ts +1 -0
  23. package/dist/dynamic.d.ts.map +1 -1
  24. package/dist/dynamic.js +6 -1
  25. package/dist/index.d.ts +3 -2
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -3
  28. package/dist/run.d.ts.map +1 -1
  29. package/dist/run.js +3 -2
  30. package/dist/symbol.d.ts +1 -0
  31. package/dist/symbol.d.ts.map +1 -1
  32. package/dist/symbol.js +2 -1
  33. package/package.json +17 -6
  34. package/.github/workflows/ci.yaml +0 -34
  35. package/dist/pipeline.test.d.ts +0 -7
  36. package/dist/pipeline.test.d.ts.map +0 -1
  37. package/dist/pipeline.test.js +0 -124
  38. package/dist/utils/executor.test.d.ts +0 -8
  39. package/dist/utils/executor.test.d.ts.map +0 -1
  40. package/dist/utils/executor.test.js +0 -22
  41. package/dist/utils/time_difference.test.d.ts +0 -6
  42. package/dist/utils/time_difference.test.d.ts.map +0 -1
  43. package/dist/utils/time_difference.test.js +0 -11
  44. package/dist/utils/time_factor.test.d.ts +0 -6
  45. package/dist/utils/time_factor.test.d.ts.map +0 -1
  46. package/dist/utils/time_factor.test.js +0 -27
  47. package/tsconfig.json +0 -18
package/README.md CHANGED
@@ -472,3 +472,43 @@ export class HookOverrideTest extends HookInitialTest {
472
472
  }
473
473
  }
474
474
  ```
475
+
476
+ ## CommonJS support
477
+
478
+ Nole ships both an ESM and a CommonJS build, wired up through the package
479
+ `exports` map. Use whichever your project speaks — `import` gets the ESM build,
480
+ `require` gets the CommonJS one:
481
+
482
+ ```js
483
+ import { Test } from "nole"; // ESM
484
+ const { Test } = require("nole"); // CommonJS
485
+ ```
486
+
487
+ You don't even need TypeScript. A plain CommonJS `.js` test file works:
488
+
489
+ ```js
490
+ // test/commonjs/require.test.js
491
+ const { Test } = require("nole");
492
+
493
+ exports.CommonJSTest = class CommonJSTest extends Test() {
494
+ async check() {
495
+ console.log("It works from CommonJS");
496
+ }
497
+ };
498
+ ```
499
+
500
+ When discovering tests, nole loads each file with the loader that matches its own
501
+ module format: ESM files via `import()`, CommonJS files via `require()`. The
502
+ format is decided the same way Node decides it — `.mts`/`.cts` win by extension,
503
+ otherwise the nearest `package.json` `type` field is used. So ESM and CommonJS
504
+ test files can even live side by side in one run:
505
+
506
+ ```bash
507
+ $ nole './test/**/*.test.{ts,js}'
508
+ (ok) 0.11 ms QueueTest.push()
509
+ (ok) 0.58 ms CommonJSTest.check()
510
+ ```
511
+
512
+ > Quote your globs (`'./test/**/*.test.{ts,js}'`) so nole expands them itself
513
+ > instead of relying on the shell — this keeps discovery consistent across
514
+ > environments.
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.DEFAULT_TIMEOUT = exports.HOOK_FAILED_TEXT = exports.FAILED_TEXT = exports.DYNAMIC_SKIP_TEXT = exports.SKIP_TEXT = exports.OK_TEXT = exports.colors = void 0;
37
+ const clrs = __importStar(require("colors/safe.js"));
38
+ exports.colors = clrs.default;
39
+ exports.OK_TEXT = exports.colors.bold(exports.colors.green(" (ok) "));
40
+ exports.SKIP_TEXT = exports.colors.bold(exports.colors.yellow(" (skip) "));
41
+ exports.DYNAMIC_SKIP_TEXT = exports.colors.bold(exports.colors.blue(" (dskip) "));
42
+ exports.FAILED_TEXT = exports.colors.bold(exports.colors.red(" (failed) "));
43
+ exports.HOOK_FAILED_TEXT = exports.colors.bold(exports.colors.red(" (hook failed) "));
44
+ exports.DEFAULT_TIMEOUT = 5000;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBWSxJQUFJLDJDQUF1QjtBQUUxQixRQUFBLE1BQU0sR0FBSSxJQUFZLENBQUMsT0FBTyxDQUFDO0FBRS9CLFFBQUEsT0FBTyxHQUFHLFFBQUEsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFBLE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztBQUNsRCxRQUFBLFNBQVMsR0FBRyxRQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBQSxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFDckQsUUFBQSxpQkFBaUIsR0FBRyxRQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7QUFDNUQsUUFBQSxXQUFXLEdBQUcsUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO0FBQ3BELFFBQUEsZ0JBQWdCLEdBQUcsUUFBQSxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQUEsTUFBTSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7QUFFOUQsUUFBQSxlQUFlLEdBQUcsSUFBSSxDQUFDIn0=
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BaseTest = void 0;
5
+ exports.Test = Test;
6
+ const symbol_js_1 = require("./symbol.js");
7
+ class BaseTest {
8
+ }
9
+ exports.BaseTest = BaseTest;
10
+ _a = symbol_js_1.TEST_CLASS_KEY;
11
+ BaseTest[_a] = {
12
+ dependencies: new Map(),
13
+ timeout: 5000,
14
+ };
15
+ function Test({ dependencies, skip, before, after, timeout, } = {}) {
16
+ var _b, _c, _d;
17
+ function wrap(superClassInfo) {
18
+ const deps = dependencies ? dependencies : {};
19
+ const classInfo = { ...superClassInfo };
20
+ if (!classInfo.dependencies) {
21
+ classInfo.dependencies = new Map();
22
+ }
23
+ else {
24
+ classInfo.dependencies = new Map(classInfo.dependencies);
25
+ }
26
+ if (before !== undefined) {
27
+ classInfo.before = before;
28
+ }
29
+ if (after !== undefined) {
30
+ classInfo.after = after;
31
+ }
32
+ for (const key of Object.keys(deps)) {
33
+ const config = deps[key];
34
+ if (symbol_js_1.TEST_CLASS_KEY in config) {
35
+ classInfo.dependencies.set(key, (() => config));
36
+ }
37
+ else if (typeof config === "function") {
38
+ classInfo.dependencies.set(key, config);
39
+ }
40
+ else {
41
+ throw new Error(`Invalid dependency configuration for key ${key}`);
42
+ }
43
+ }
44
+ if (skip !== undefined) {
45
+ classInfo.skip = skip;
46
+ }
47
+ if (timeout !== undefined) {
48
+ classInfo.timeout = timeout;
49
+ }
50
+ return classInfo;
51
+ }
52
+ return _b = class extends (_c = BaseTest) {
53
+ constructor() {
54
+ super();
55
+ }
56
+ },
57
+ _d = symbol_js_1.TEST_CLASS_KEY,
58
+ _b[_d] = wrap(Reflect.get(_c, symbol_js_1.TEST_CLASS_KEY, _b)),
59
+ _b;
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsMkNBQWlFO0FBV2pFO0NBT0M7O0tBSlMsMEJBQWM7QUFBZixZQUFnQixHQUFrQjtJQUN2QyxZQUFZLEVBQUUsSUFBSSxHQUFHLEVBQUU7SUFDdkIsT0FBTyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBTUosY0FFRSxFQUNBLFlBQVksRUFDWixJQUFJLEVBQ0osTUFBTSxFQUNOLEtBQUssRUFDTCxPQUFPLEdBQ1IsR0FNRyxFQUFFOztJQUtKLFNBQVMsSUFBSSxDQUFDLGNBQTZCO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBRSxFQUFXLENBQUM7UUFFeEQsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLGNBQWMsRUFBRSxDQUFDO1FBRXhDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDNUIsU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLENBQUM7YUFBTSxDQUFDO1lBQ04sU0FBUyxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3pCLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN4QixTQUFTLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUMxQixDQUFDO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDcEMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXpCLElBQUksMEJBQWMsSUFBSSxNQUFNLEVBQUUsQ0FBQztnQkFDN0IsU0FBUyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFRLENBQUMsQ0FBQztZQUN6RCxDQUFDO2lCQUFNLElBQUksT0FBTyxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7Z0JBQ3hDLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNyRSxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3ZCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxJQUFJLE9BQU8sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixTQUFTLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELE9BQU8sS0FBQSxLQUFNLFNBQVEsTUFBQSxRQUFRLENBQUE7WUFHM0I7Z0JBQ0UsS0FBSyxFQUFFLENBQUM7WUFDVixDQUFDO1NBQ0Y7YUFMUywwQkFBYztRQUFmLE1BQWdCLEdBQWtCLElBQUksQ0FBQyxnQkFBTSwwQkFBYyxLQUFmLENBQWtCO1VBSzdCLENBQUM7QUFDN0MsQ0FBQyJ9
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skipTest = skipTest;
4
+ exports.skipClass = skipClass;
5
+ exports.isSkipped = isSkipped;
6
+ exports.getTest = getTest;
7
+ exports.addTest = addTest;
8
+ const run_js_1 = require("./run.js");
9
+ const symbol_js_1 = require("./symbol.js");
10
+ const test_wrap_js_1 = require("./test-wrap.js");
11
+ function skipTest(reason) {
12
+ throw new NoleManualSkip(reason);
13
+ }
14
+ function skipClass(reason) {
15
+ throw new NoleManualClassSkip(reason);
16
+ }
17
+ function isSkipped(instance) {
18
+ const info = instance[symbol_js_1.TEST_INSTANCE_INFO];
19
+ return !!info?.skip;
20
+ }
21
+ class NoleManualSkip extends Error {
22
+ constructor(reason) {
23
+ super(`Dynamicly skipped! ${reason}`);
24
+ this.reason = reason;
25
+ this._nole_anchor = 1;
26
+ }
27
+ }
28
+ class NoleManualClassSkip extends Error {
29
+ constructor(reason) {
30
+ super(`Dynamicly skipped! ${reason}`);
31
+ this.reason = reason;
32
+ this._nole_anchor = 2;
33
+ }
34
+ }
35
+ function getTest(test) {
36
+ const testWrap = (0, run_js_1.getTestMap)().get(test());
37
+ if (!testWrap) {
38
+ return null;
39
+ }
40
+ (0, run_js_1.createInstanceIfNotExists)(testWrap);
41
+ return testWrap.testInstance;
42
+ }
43
+ function addTest(test) {
44
+ const testMap = (0, run_js_1.getTestMap)();
45
+ const remainingTests = (0, run_js_1.getFutureTestMap)();
46
+ const testClass = test();
47
+ if (testMap.has(testClass)) {
48
+ return false;
49
+ }
50
+ const testWrap = new test_wrap_js_1.TestWrap(testClass);
51
+ remainingTests.set(testClass, testWrap);
52
+ testMap.set(testClass, testWrap);
53
+ (0, run_js_1.updateInformationForClass)(testClass, testWrap, testMap);
54
+ return true;
55
+ }
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9keW5hbWljLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxxQ0FLa0I7QUFDbEIsMkNBQWlFO0FBQ2pFLGlEQUEwQztBQUUxQyxrQkFBeUIsTUFBZTtJQUN0QyxNQUFNLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxtQkFBMEIsTUFBZTtJQUN2QyxNQUFNLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVELG1CQUEwQixRQUFrQjtJQUMxQyxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsOEJBQWtCLENBQUMsQ0FBQztJQUUxQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLGNBQWUsU0FBUSxLQUFLO0lBR2hDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsTUFBTSxtQkFBb0IsU0FBUSxLQUFLO0lBR3JDLFlBQW1CLE1BQWU7UUFDaEMsS0FBSyxDQUFDLHNCQUFzQixNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBRHJCLFdBQU0sR0FBTixNQUFNLENBQVM7UUFGbEMsaUJBQVksR0FBRyxDQUFDLENBQUM7SUFJakIsQ0FBQztDQUNGO0FBRUQsaUJBQ0UsSUFBdUI7SUFFdkIsTUFBTSxRQUFRLEdBQUcsSUFBQSxtQkFBVSxHQUFFLENBQUMsR0FBRyxDQUFDLElBQUksRUFBUyxDQUF5QixDQUFDO0lBRXpFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELElBQUEsa0NBQXlCLEVBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsT0FBTyxRQUFRLENBQUMsWUFBWSxDQUFDO0FBQy9CLENBQUM7QUFFRCxpQkFBNEMsSUFBdUI7SUFDakUsTUFBTSxPQUFPLEdBQUcsSUFBQSxtQkFBVSxHQUFFLENBQUM7SUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBQSx5QkFBZ0IsR0FBRSxDQUFDO0lBRTFDLE1BQU0sU0FBUyxHQUFHLElBQUksRUFBRSxDQUFDO0lBRXpCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sUUFBUSxHQUFHLElBQUksdUJBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN6QyxjQUFjLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUVqQyxJQUFBLGtDQUF5QixFQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFeEQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIn0=
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleAfterEachHooks = handleAfterEachHooks;
4
+ const test_wrap_js_1 = require("../test-wrap.js");
5
+ const executor_js_1 = require("../utils/executor.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const const_js_1 = require("../const.js");
8
+ async function handleAfterEachHooks(test) {
9
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
10
+ for (let [propertyKey, hook] of test.hooks.entries()) {
11
+ if (hook.type != test_wrap_js_1.HookType.AfterEach)
12
+ continue;
13
+ let hookName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name +
14
+ (propertyKey != "afterEach"
15
+ ? `.${propertyKey}:afterEach`
16
+ : ":afterEach")));
17
+ try {
18
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
19
+ let timeText = (0, time_factor_js_1.TimeFactor)(0, timeout);
20
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${hookName}()`);
21
+ }
22
+ catch (e) {
23
+ console.error(`${const_js_1.HOOK_FAILED_TEXT} ${hookName}()`);
24
+ console.error(e?.stack ?? e);
25
+ throw e;
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXItZWFjaC1ob29rcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oYW5kbGUvYWZ0ZXItZWFjaC1ob29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBcUQ7QUFDckQsc0RBQWdEO0FBQ2hELDREQUFxRDtBQUNyRCwwQ0FLcUI7QUFFZCxLQUFLLCtCQUErQixJQUFjO0lBQ3ZELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLDBCQUFlLENBQUM7SUFFdkQsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksdUJBQVEsQ0FBQyxTQUFTO1lBQUUsU0FBUztRQUU5QyxJQUFJLFFBQVEsR0FBRyxpQkFBTSxDQUFDLElBQUksQ0FDeEIsaUJBQU0sQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLElBQUk7WUFDUCxDQUFDLFdBQVcsSUFBSSxXQUFXO2dCQUN6QixDQUFDLENBQUMsSUFBSSxXQUFXLFlBQVk7Z0JBQzdCLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FDcEIsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFBLHNCQUFRLEVBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUN0RCxPQUFPLENBQ1IsQ0FBQztZQUVGLElBQUksUUFBUSxHQUFHLElBQUEsMkJBQVUsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsMkJBQWdCLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLENBQUMsS0FBSyxDQUFFLENBQVMsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLENBQUM7UUFDVixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleAfterHooks = handleAfterHooks;
4
+ const test_wrap_js_1 = require("../test-wrap.js");
5
+ const executor_js_1 = require("../utils/executor.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const const_js_1 = require("../const.js");
8
+ async function handleAfterHooks(test) {
9
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
10
+ for (let [propertyKey, hook] of test.hooks.entries()) {
11
+ if (hook.type != test_wrap_js_1.HookType.After)
12
+ continue;
13
+ let hookName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name +
14
+ (propertyKey != "after" ? `.${propertyKey}:after` : ":after")));
15
+ try {
16
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
17
+ let timeText = (0, time_factor_js_1.TimeFactor)(0, timeout);
18
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${hookName}()`);
19
+ }
20
+ catch (e) {
21
+ console.error(`${const_js_1.HOOK_FAILED_TEXT} ${hookName}()`);
22
+ console.error(e?.stack ?? e);
23
+ throw e;
24
+ }
25
+ }
26
+ }
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWZ0ZXItaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlL2FmdGVyLWhvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFxRDtBQUNyRCxzREFBZ0Q7QUFDaEQsNERBQXFEO0FBQ3JELDBDQUtxQjtBQUVkLEtBQUssMkJBQTJCLElBQWM7SUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksMEJBQWUsQ0FBQztJQUV2RCxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSx1QkFBUSxDQUFDLEtBQUs7WUFBRSxTQUFTO1FBRTFDLElBQUksUUFBUSxHQUFHLGlCQUFNLENBQUMsSUFBSSxDQUN4QixpQkFBTSxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsSUFBSTtZQUNQLENBQUMsV0FBVyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxXQUFXLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQ2hFLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQztZQUNILE1BQU0sSUFBQSxzQkFBUSxFQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDdEQsT0FBTyxDQUNSLENBQUM7WUFDRixJQUFJLFFBQVEsR0FBRyxJQUFBLDJCQUFVLEVBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXRDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBTyxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLDJCQUFnQixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBRSxDQUFTLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleBeforeEachHooks = handleBeforeEachHooks;
4
+ const test_wrap_js_1 = require("../test-wrap.js");
5
+ const executor_js_1 = require("../utils/executor.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const const_js_1 = require("../const.js");
8
+ async function handleBeforeEachHooks(test) {
9
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
10
+ for (let [propertyKey, hook] of test.hooks.entries()) {
11
+ if (hook.type != test_wrap_js_1.HookType.BeforeEach)
12
+ continue;
13
+ let hookName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name +
14
+ (propertyKey != "beforeEach"
15
+ ? `.${propertyKey}:beforeEach`
16
+ : ":beforeEach")));
17
+ try {
18
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
19
+ let timeText = (0, time_factor_js_1.TimeFactor)(0, timeout);
20
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${hookName}()`);
21
+ }
22
+ catch (e) {
23
+ console.error(`${const_js_1.HOOK_FAILED_TEXT} ${hookName}()`);
24
+ console.error(e?.stack ?? e);
25
+ throw e;
26
+ }
27
+ }
28
+ }
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWVhY2gtaG9va3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlL2JlZm9yZS1lYWNoLWhvb2tzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGtEQUFxRDtBQUNyRCxzREFBZ0Q7QUFDaEQsNERBQXFEO0FBQ3JELDBDQUtxQjtBQUVkLEtBQUssZ0NBQWdDLElBQWM7SUFDeEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLElBQUksMEJBQWUsQ0FBQztJQUV2RCxLQUFLLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLElBQUksSUFBSSx1QkFBUSxDQUFDLFVBQVU7WUFBRSxTQUFTO1FBQy9DLElBQUksUUFBUSxHQUFHLGlCQUFNLENBQUMsSUFBSSxDQUN4QixpQkFBTSxDQUFDLE1BQU0sQ0FDWCxJQUFJLENBQUMsSUFBSTtZQUNQLENBQUMsV0FBVyxJQUFJLFlBQVk7Z0JBQzFCLENBQUMsQ0FBQyxJQUFJLFdBQVcsYUFBYTtnQkFDOUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUNyQixDQUNGLENBQUM7UUFFRixJQUFJLENBQUM7WUFDSCxNQUFNLElBQUEsc0JBQVEsRUFDWixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQ3RELE9BQU8sQ0FDUixDQUFDO1lBRUYsSUFBSSxRQUFRLEdBQUcsSUFBQSwyQkFBVSxFQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUV0QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsa0JBQU8sSUFBSSxRQUFRLElBQUksUUFBUSxJQUFJLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRywyQkFBZ0IsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUUsQ0FBUyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztZQUN0QyxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleBeforeHooks = handleBeforeHooks;
4
+ const test_wrap_js_1 = require("../test-wrap.js");
5
+ const executor_js_1 = require("../utils/executor.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const const_js_1 = require("../const.js");
8
+ async function handleBeforeHooks(test) {
9
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
10
+ for (let [propertyKey, hook] of test.hooks.entries()) {
11
+ if (hook.type != test_wrap_js_1.HookType.Before)
12
+ continue;
13
+ let hookName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name +
14
+ (propertyKey != "before" ? `.${propertyKey}:before` : ":before")));
15
+ try {
16
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
17
+ let timeText = (0, time_factor_js_1.TimeFactor)(0, timeout);
18
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${hookName}()`);
19
+ }
20
+ catch (e) {
21
+ const anchor = e?._nole_anchor;
22
+ if (anchor === 1) {
23
+ throw new Error("You cannot just skip the before hook! Probably you ment to skip the whole test class!");
24
+ }
25
+ else if (anchor === 2) {
26
+ let reason = e.reason;
27
+ test.skipClass = { reason, origin: ":" + propertyKey };
28
+ console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${hookName}() ${reason ? "{" + reason + "}" : ""}`);
29
+ continue;
30
+ }
31
+ console.error(`${const_js_1.HOOK_FAILED_TEXT} ${hookName}()`);
32
+ console.error(e?.stack ?? e);
33
+ throw e;
34
+ }
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVmb3JlLWhvb2tzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2hhbmRsZS9iZWZvcmUtaG9va3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBQXFEO0FBQ3JELHNEQUFnRDtBQUNoRCw0REFBcUQ7QUFDckQsMENBTXFCO0FBRWQsS0FBSyw0QkFBNEIsSUFBYztJQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSwwQkFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLHVCQUFRLENBQUMsTUFBTTtZQUFFLFNBQVM7UUFFM0MsSUFBSSxRQUFRLEdBQUcsaUJBQU0sQ0FBQyxJQUFJLENBQ3hCLGlCQUFNLENBQUMsTUFBTSxDQUNYLElBQUksQ0FBQyxJQUFJO1lBQ1AsQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLFdBQVcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FDbkUsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFBLHNCQUFRLEVBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUN0RCxPQUFPLENBQ1IsQ0FBQztZQUVGLElBQUksUUFBUSxHQUFHLElBQUEsMkJBQVUsRUFBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFFdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLGtCQUFPLElBQUksUUFBUSxJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7UUFDdEQsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxNQUFNLE1BQU0sR0FBSSxDQUFTLEVBQUUsWUFBWSxDQUFDO1lBQ3hDLElBQUksTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLHVGQUF1RixDQUN4RixDQUFDO1lBQ0osQ0FBQztpQkFBTSxJQUFJLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxNQUFNLEdBQUksQ0FBUyxDQUFDLE1BQU0sQ0FBQztnQkFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLFdBQVcsRUFBRSxDQUFDO2dCQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcsNEJBQWlCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxRQUFRLE1BQy9DLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQ2hDLEVBQUUsQ0FDSCxDQUFDO2dCQUNGLFNBQVM7WUFDWCxDQUFDO1lBRUQsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLDJCQUFnQixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBRSxDQUFTLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleCleanUp = handleCleanUp;
4
+ const test_wrap_js_1 = require("../test-wrap.js");
5
+ const executor_js_1 = require("../utils/executor.js");
6
+ const time_difference_js_1 = require("../utils/time_difference.js");
7
+ const time_factor_js_1 = require("../utils/time_factor.js");
8
+ const const_js_1 = require("../const.js");
9
+ async function handleCleanUp(test) {
10
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
11
+ if (test.cleanUpCalled)
12
+ return;
13
+ if (!test.dependents.every((dependent) => dependent.isFinished && dependent.cleanUpCalled))
14
+ return;
15
+ test.cleanUpCalled = true;
16
+ for (let [propertyKey, hook] of test.hooks.entries()) {
17
+ if (hook.type != test_wrap_js_1.HookType.CleanUp)
18
+ continue;
19
+ let hookName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name +
20
+ (propertyKey != "cleanUp" ? `.${propertyKey}:cleanUp` : ":cleanUp")));
21
+ let start = time_difference_js_1.TimeDifference.begin();
22
+ try {
23
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
24
+ let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
25
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${hookName}()`);
26
+ }
27
+ catch (e) {
28
+ console.error(`${const_js_1.HOOK_FAILED_TEXT} ${hookName}()`);
29
+ console.error(e?.stack ?? e);
30
+ throw e;
31
+ }
32
+ }
33
+ for (let tree of test.dependencies) {
34
+ await handleCleanUp(tree.dependency);
35
+ }
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW51cC1ob29rcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9oYW5kbGUvY2xlYW51cC1ob29rcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrREFBcUQ7QUFDckQsc0RBQWdEO0FBQ2hELG9FQUE2RDtBQUM3RCw0REFBcUQ7QUFDckQsMENBS3FCO0FBRWQsS0FBSyx3QkFBd0IsSUFBYztJQUNoRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSwwQkFBZSxDQUFDO0lBRXZELElBQUksSUFBSSxDQUFDLGFBQWE7UUFBRSxPQUFPO0lBQy9CLElBQ0UsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FDcEIsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FDL0Q7UUFFRCxPQUFPO0lBRVQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFFMUIsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksdUJBQVEsQ0FBQyxPQUFPO1lBQUUsU0FBUztRQUU1QyxJQUFJLFFBQVEsR0FBRyxpQkFBTSxDQUFDLElBQUksQ0FDeEIsaUJBQU0sQ0FBQyxNQUFNLENBQ1gsSUFBSSxDQUFDLElBQUk7WUFDUCxDQUFDLFdBQVcsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksV0FBVyxVQUFVLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUN0RSxDQUNGLENBQUM7UUFDRixJQUFJLEtBQUssR0FBRyxtQ0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLElBQUksQ0FBQztZQUNILE1BQU0sSUFBQSxzQkFBUSxFQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDdEQsT0FBTyxDQUNSLENBQUM7WUFFRixJQUFJLFFBQVEsR0FBRyxJQUFBLDJCQUFVLEVBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRWhELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxrQkFBTyxJQUFJLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLDJCQUFnQixJQUFJLFFBQVEsSUFBSSxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLEtBQUssQ0FBRSxDQUFTLEVBQUUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ3RDLE1BQU0sQ0FBQyxDQUFDO1FBQ1YsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdkMsQ0FBQztBQUNILENBQUMifQ==
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSpecs = handleSpecs;
4
+ const executor_js_1 = require("../utils/executor.js");
5
+ const time_difference_js_1 = require("../utils/time_difference.js");
6
+ const time_factor_js_1 = require("../utils/time_factor.js");
7
+ const after_each_hooks_js_1 = require("./after-each-hooks.js");
8
+ const before_each_hooks_js_1 = require("./before-each-hooks.js");
9
+ const const_js_1 = require("../const.js");
10
+ async function handleSpecs(test) {
11
+ const timeout = test.config.timeout ?? const_js_1.DEFAULT_TIMEOUT;
12
+ for (let [propertyKey, spec] of test.specs.entries()) {
13
+ let testName = const_js_1.colors.bold(const_js_1.colors.yellow(test.name + "." + propertyKey));
14
+ const shouldPropertySkip = test.skip.has(propertyKey);
15
+ if (shouldPropertySkip || test.skipClass) {
16
+ let reason = shouldPropertySkip
17
+ ? test.skip.get(propertyKey).reason
18
+ : test.skipClass.reason;
19
+ const hasOrigin = !!test.skipClass?.origin;
20
+ const TEXT = hasOrigin ? const_js_1.DYNAMIC_SKIP_TEXT : const_js_1.SKIP_TEXT;
21
+ console.log(`${TEXT} ${" ".repeat(hasOrigin ? 8 : 9)} ${testName}() ${reason ? "{" + reason + "}" : ""}${hasOrigin ? `\n${" ".repeat(22)}↳ skip came from ${test.skipClass?.origin}` : ``}`);
22
+ continue;
23
+ }
24
+ await (0, before_each_hooks_js_1.handleBeforeEachHooks)(test);
25
+ let start = time_difference_js_1.TimeDifference.begin();
26
+ try {
27
+ await (0, executor_js_1.Executor)(test.testInstance[propertyKey].bind(test.testInstance), timeout);
28
+ let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
29
+ console.log(`${const_js_1.OK_TEXT} ${timeText} ${testName}()`);
30
+ }
31
+ catch (e) {
32
+ const anchor = e?._nole_anchor;
33
+ if (anchor === 1) {
34
+ let reason = e.reason;
35
+ console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
36
+ continue;
37
+ }
38
+ else if (anchor === 2) {
39
+ let reason = e.reason;
40
+ test.skipClass = { reason, origin: "." + propertyKey };
41
+ console.log(`${const_js_1.DYNAMIC_SKIP_TEXT} ${" ".repeat(8)} ${testName}() ${reason ? "{" + reason + "}" : ""}`);
42
+ continue;
43
+ }
44
+ let timeText = (0, time_factor_js_1.TimeFactor)(start.end(), timeout);
45
+ console.error(`${const_js_1.FAILED_TEXT} ${timeText} ${testName}()`);
46
+ console.error(e?.stack ?? e);
47
+ throw e;
48
+ }
49
+ await (0, after_each_hooks_js_1.handleAfterEachHooks)(test);
50
+ }
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BlY3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaGFuZGxlL3NwZWNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHNEQUFnRDtBQUNoRCxvRUFBNkQ7QUFDN0QsNERBQXFEO0FBQ3JELCtEQUE2RDtBQUM3RCxpRUFBK0Q7QUFDL0QsMENBT3FCO0FBRWQsS0FBSyxzQkFBc0IsSUFBYztJQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSwwQkFBZSxDQUFDO0lBRXZELEtBQUssSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDckQsSUFBSSxRQUFRLEdBQUcsaUJBQU0sQ0FBQyxJQUFJLENBQUMsaUJBQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUV6RSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RELElBQUksa0JBQWtCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3pDLElBQUksTUFBTSxHQUFHLGtCQUFrQjtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBRSxDQUFDLE1BQU07Z0JBQ3BDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBVSxDQUFDLE1BQU0sQ0FBQztZQUUzQixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDM0MsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyw0QkFBaUIsQ0FBQyxDQUFDLENBQUMsb0JBQVMsQ0FBQztZQUN2RCxPQUFPLENBQUMsR0FBRyxDQUNULEdBQUcs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
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSkipped = exports.addTest = exports.getTest = exports.skipClass = exports.skipTest = exports.BaseTest = exports.Test = exports.HookType = void 0;
4
+ var test_wrap_js_1 = require("./test-wrap.js");
5
+ Object.defineProperty(exports, "HookType", { enumerable: true, get: function () { return test_wrap_js_1.HookType; } });
6
+ var core_js_1 = require("./core.js");
7
+ Object.defineProperty(exports, "Test", { enumerable: true, get: function () { return core_js_1.Test; } });
8
+ Object.defineProperty(exports, "BaseTest", { enumerable: true, get: function () { return core_js_1.BaseTest; } });
9
+ var dynamic_js_1 = require("./dynamic.js");
10
+ Object.defineProperty(exports, "skipTest", { enumerable: true, get: function () { return dynamic_js_1.skipTest; } });
11
+ Object.defineProperty(exports, "skipClass", { enumerable: true, get: function () { return dynamic_js_1.skipClass; } });
12
+ Object.defineProperty(exports, "getTest", { enumerable: true, get: function () { return dynamic_js_1.getTest; } });
13
+ Object.defineProperty(exports, "addTest", { enumerable: true, get: function () { return dynamic_js_1.addTest; } });
14
+ Object.defineProperty(exports, "isSkipped", { enumerable: true, get: function () { return dynamic_js_1.isSkipped; } });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsK0NBQTBDO0FBQWpDLHdHQUFBLFFBQVEsT0FBQTtBQUNqQixxQ0FBMkM7QUFBbEMsK0ZBQUEsSUFBSSxPQUFBO0FBQUUsbUdBQUEsUUFBUSxPQUFBO0FBRXZCLDJDQUFnRjtBQUF2RSxzR0FBQSxRQUFRLE9BQUE7QUFBRSx1R0FBQSxTQUFTLE9BQUE7QUFBRSxxR0FBQSxPQUFPLE9BQUE7QUFBRSxxR0FBQSxPQUFPLE9BQUE7QUFBRSx1R0FBQSxTQUFTLE9BQUEifQ==
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}