nole 3.0.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.github/workflows/ci.yaml +34 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +474 -294
  4. package/bin/nole.js +145 -110
  5. package/dist/core.js +1 -1
  6. package/dist/dynamic.d.ts +1 -0
  7. package/dist/dynamic.d.ts.map +1 -1
  8. package/dist/dynamic.js +11 -1
  9. package/dist/handle/before-hooks.d.ts.map +1 -1
  10. package/dist/handle/before-hooks.js +12 -2
  11. package/dist/handle/specs.d.ts.map +1 -1
  12. package/dist/handle/specs.js +12 -3
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -2
  16. package/dist/pipeline.test.d.ts +7 -0
  17. package/dist/pipeline.test.d.ts.map +1 -0
  18. package/dist/pipeline.test.js +124 -0
  19. package/dist/run.d.ts.map +1 -1
  20. package/dist/run.js +14 -6
  21. package/dist/symbol.d.ts.map +1 -1
  22. package/dist/symbol.js +2 -2
  23. package/dist/test-wrap.d.ts +1 -0
  24. package/dist/test-wrap.d.ts.map +1 -1
  25. package/dist/test-wrap.js +1 -1
  26. package/dist/utils/executor.test.d.ts.map +1 -1
  27. package/dist/utils/time_difference.d.ts.map +1 -1
  28. package/dist/utils/time_difference.test.d.ts.map +1 -1
  29. package/dist/utils/time_factor.test.d.ts.map +1 -1
  30. package/package.json +57 -57
  31. package/tsconfig.json +18 -16
  32. package/src/const.ts +0 -11
  33. package/src/core.ts +0 -89
  34. package/src/dynamic.ts +0 -53
  35. package/src/handle/after-each-hooks.ts +0 -41
  36. package/src/handle/after-hooks.ts +0 -38
  37. package/src/handle/before-each-hooks.ts +0 -40
  38. package/src/handle/before-hooks.ts +0 -39
  39. package/src/handle/cleanup-hooks.ts +0 -55
  40. package/src/handle/specs.ts +0 -68
  41. package/src/index.ts +0 -3
  42. package/src/run.ts +0 -259
  43. package/src/symbol.ts +0 -1
  44. package/src/test-wrap.ts +0 -48
  45. package/src/utils/executor.test.ts +0 -24
  46. package/src/utils/executor.ts +0 -22
  47. package/src/utils/time_difference.test.ts +0 -11
  48. package/src/utils/time_difference.ts +0 -26
  49. package/src/utils/time_factor.test.ts +0 -28
  50. package/src/utils/time_factor.ts +0 -33
  51. package/test/basic.test.ts +0 -23
  52. package/test/before.test.ts +0 -41
  53. package/test/clean-up.test.ts +0 -48
  54. package/test/dynamic-skip.test.ts +0 -6
  55. package/test/dynamic.test.ts +0 -28
  56. package/test/extend.test.ts +0 -43
  57. package/test/hook.test.ts +0 -26
  58. package/test/multi-dependency.test.ts +0 -43
  59. package/test/multiple-uppercased-chars.test.ts +0 -20
  60. package/test/skip-all.test.ts +0 -10
  61. package/test/tsconfig.json +0 -24
  62. package/test/turkish-chars.test.ts +0 -20
package/dist/run.js CHANGED
@@ -53,7 +53,7 @@ export function updateInformationForClass(target, test, tests) {
53
53
  test.skipClass = { reason: config.skip };
54
54
  }
55
55
  test.dependencies = config.dependencies
56
- ? Array.from(config.dependencies.entries().map(([key, dep]) => {
56
+ ? Array.from(config.dependencies.entries()).map(([key, dep]) => {
57
57
  const actual = dep();
58
58
  let testWrap = tests.get(actual);
59
59
  if (!testWrap) {
@@ -66,7 +66,7 @@ export function updateInformationForClass(target, test, tests) {
66
66
  propertyKey: key,
67
67
  dependency: testWrap,
68
68
  };
69
- }))
69
+ })
70
70
  : [];
71
71
  if (config.before) {
72
72
  const beforeTests = config.before();
@@ -129,6 +129,9 @@ function specDetection(test) {
129
129
  if (typeof key !== "string") {
130
130
  continue;
131
131
  }
132
+ if (key.startsWith(process.env.SPEC_SKIP_PREFIX ?? "_")) {
133
+ continue;
134
+ }
132
135
  let lowerKey = key.toLowerCase();
133
136
  if (lowerKey.startsWith("skip")) {
134
137
  test.skip.set(key, { reason: "marked as skipped" });
@@ -164,13 +167,18 @@ function specDetection(test) {
164
167
  function getAllMethods(instance) {
165
168
  let props = new Set();
166
169
  let currentObj = instance;
170
+ let stack = [];
167
171
  while (currentObj && currentObj !== Object.prototype) {
168
- Object.getOwnPropertyNames(currentObj).forEach((prop) => {
169
- if (typeof currentObj[prop] === "function" && prop !== "constructor") {
172
+ stack.push(currentObj);
173
+ currentObj = Object.getPrototypeOf(currentObj);
174
+ }
175
+ while (stack.length > 0) {
176
+ let obj = stack.pop(); // En üstteki (A.prototype) ilk çıkar
177
+ Object.getOwnPropertyNames(obj).forEach((prop) => {
178
+ if (typeof obj[prop] === "function" && prop !== "constructor") {
170
179
  props.add(prop);
171
180
  }
172
181
  });
173
- currentObj = Object.getPrototypeOf(currentObj);
174
182
  }
175
183
  return Array.from(props);
176
184
  }
@@ -198,4 +206,4 @@ export function getTestMap() {
198
206
  export function getFutureTestMap() {
199
207
  return notTestedYet;
200
208
  }
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxJQUFJLFFBQVEsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RCxJQUFJLFlBQVksR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVoRSxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFzQztJQUNwRSxLQUFLLElBQUksSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQy9CLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLElB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
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3J1bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxRQUFRLEVBQXNCLE1BQU0sV0FBVyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVqRCxJQUFJLFFBQVEsR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUM1RCxJQUFJLFlBQVksR0FBc0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztBQUVoRSxNQUFNLENBQUMsS0FBSyxVQUFVLFNBQVMsQ0FBQyxhQUFzQztJQUNwRSxLQUFLLElBQUksSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO1FBQy9CLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLFNBQVM7UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekIsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELDZCQUE2QixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBRTVDLElB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
@@ -1 +1 @@
1
- {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../src/symbol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAA2B,CAAC"}
1
+ {"version":3,"file":"symbol.d.ts","sourceRoot":"","sources":["../src/symbol.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,eAAoC,CAAC"}
package/dist/symbol.js CHANGED
@@ -1,2 +1,2 @@
1
- export const TEST_CLASS_KEY = Symbol("TEST_CLASS_KEY");
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUMifQ==
1
+ export const TEST_CLASS_KEY = Symbol.for("nole.TEST_CLASS_KEY");
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ltYm9sLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3N5bWJvbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDIn0=
@@ -10,6 +10,7 @@ export interface IHook {
10
10
  }
11
11
  export interface ISkip {
12
12
  reason: string;
13
+ origin?: string;
13
14
  }
14
15
  export declare class TestWrap {
15
16
  target: new () => BaseTest;
@@ -1 +1 @@
1
- {"version":3,"file":"test-wrap.d.ts","sourceRoot":"","sources":["../src/test-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAGzD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAGD,qBAAa,QAAQ;IAaA,MAAM,EAAE,UAAU,QAAQ;IAZ7C,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAC5B,IAAI,qBAA4B;IAChC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC/B,KAAK,qBAA4B;IACjC,KAAK,qBAA4B;IACjC,UAAU,EAAE,OAAO,CAAS;IAC5B,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,OAAO,CAAS;IAC/B,MAAM,EAAE,aAAa,CAAC;gBAEH,MAAM,EAAE,UAAU,QAAQ;IAI7C,IAAI,IAAI,WAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA,CAAE,4CAA4C;IACpD,KAAK,IAAA,CAAE,2CAA2C;IAClD,UAAU,IAAA,CAAE,2BAA2B;IACvC,SAAS,IAAA,CAAE,0BAA0B;IACrC,OAAO,IAAA;CACR"}
1
+ {"version":3,"file":"test-wrap.d.ts","sourceRoot":"","sources":["../src/test-wrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,WAAW,CAAC;AAGzD,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,MAAM,WAAW,KAAK;CAAG;AAEzB,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,KAAK;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,qBAAa,QAAQ;IAaA,MAAM,EAAE,UAAU,QAAQ;IAZ7C,YAAY,EAAE,WAAW,EAAE,CAAM;IACjC,UAAU,EAAE,QAAQ,EAAE,CAAM;IAC5B,IAAI,qBAA4B;IAChC,SAAS,EAAE,KAAK,GAAG,IAAI,CAAQ;IAC/B,KAAK,qBAA4B;IACjC,KAAK,qBAA4B;IACjC,UAAU,EAAE,OAAO,CAAS;IAC5B,aAAa,EAAE,OAAO,CAAS;IAC/B,YAAY,EAAE,GAAG,CAAC;IAClB,aAAa,EAAE,OAAO,CAAS;IAC/B,MAAM,EAAE,aAAa,CAAC;IAEtB,YAAmB,MAAM,EAAE,UAAU,QAAQ,EAE5C;IAED,IAAI,IAAI,WAEP;CACF;AAED,oBAAY,QAAQ;IAClB,MAAM,IAAA,CAAE,4CAA4C;IACpD,KAAK,IAAA,CAAE,2CAA2C;IAClD,UAAU,IAAA,CAAE,2BAA2B;IACvC,SAAS,IAAA,CAAE,0BAA0B;IACrC,OAAO,IAAA;CACR"}
package/dist/test-wrap.js CHANGED
@@ -27,4 +27,4 @@ export var HookType;
27
27
  HookType[HookType["AfterEach"] = 3] = "AfterEach";
28
28
  HookType[HookType["CleanUp"] = 4] = "CleanUp";
29
29
  })(HookType || (HookType = {}));
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3Qtd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBaUI3Qyx5REFBeUQ7QUFDekQsTUFBTSxPQUFPLFFBQVE7SUFhbkIsWUFBbUIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFaN0MsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2hDLGNBQVMsR0FBaUIsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUNqQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDakMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtCQUFrQjtRQUMvQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUk3QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLENBQU4sSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLDJDQUFNLENBQUE7SUFDTix5Q0FBSyxDQUFBO0lBQ0wsbURBQVUsQ0FBQTtJQUNWLGlEQUFTLENBQUE7SUFDVCw2Q0FBTyxDQUFBO0FBQ1QsQ0FBQyxFQU5XLFFBQVEsS0FBUixRQUFRLFFBTW5CIn0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC13cmFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3Rlc3Qtd3JhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFzQixNQUFNLFdBQVcsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBa0I3Qyx5REFBeUQ7QUFDekQsTUFBTSxPQUFPLFFBQVE7SUFhbkIsWUFBbUIsTUFBMEI7UUFBMUIsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7UUFaN0MsaUJBQVksR0FBa0IsRUFBRSxDQUFDO1FBQ2pDLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFDNUIsU0FBSSxHQUFHLElBQUksR0FBRyxFQUFpQixDQUFDO1FBQ2hDLGNBQVMsR0FBaUIsSUFBSSxDQUFDO1FBQy9CLFVBQUssR0FBRyxJQUFJLEdBQUcsRUFBaUIsQ0FBQztRQUNqQyxVQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWlCLENBQUM7UUFDakMsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLGtCQUFrQjtRQUMvQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUUvQixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUk3QixJQUFJLENBQUMsTUFBTSxHQUFJLE1BQTBCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztDQUNGO0FBRUQsTUFBTSxDQUFOLElBQVksUUFNWDtBQU5ELFdBQVksUUFBUTtJQUNsQiwyQ0FBTSxDQUFBO0lBQ04seUNBQUssQ0FBQTtJQUNMLG1EQUFVLENBQUE7SUFDVixpREFBUyxDQUFBO0lBQ1QsNkNBQU8sQ0FBQTtBQUNULENBQUMsRUFOVyxRQUFRLEtBQVIsUUFBUSxRQU1uQiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/utils/executor.test.ts"],"names":[],"mappings":";AAIA,qBAAa,YAAa,SAAQ,iBAAM;IAChC,QAAQ;IAKR,MAAM;IAQN,OAAO;CAKd"}
1
+ {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../src/utils/executor.test.ts"],"names":[],"mappings":";AAIA,qBAAa,YAAa,SAAQ,iBAAM;IAChC,QAAQ,kBAGb;IAEK,MAAM,kBAMX;IAEK,OAAO,kBAIZ;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time_difference.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO;IAIP;;OAEG;WACW,KAAK;IAInB;;OAEG;IACH,GAAG,IAAI,MAAM;CAKd"}
1
+ {"version":3,"file":"time_difference.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAmB;IAElC,OAAO,eAEN;IAED;;OAEG;IACH,OAAc,KAAK,mBAElB;IAED;;OAEG;IACH,GAAG,IAAI,MAAM,CAIZ;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time_difference.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.test.ts"],"names":[],"mappings":";AAKA,qBAAa,kBAAmB,SAAQ,uBAAM;IACtC,QAAQ;CAIf"}
1
+ {"version":3,"file":"time_difference.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_difference.test.ts"],"names":[],"mappings":";AAKA,qBAAa,kBAAmB,SAAQ,uBAAM;IACtC,QAAQ,kBAGb;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"time_factor.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.test.ts"],"names":[],"mappings":";AAGA,qBAAa,cAAe,SAAQ,mBAAM;IAClC,QAAQ;CAuBf"}
1
+ {"version":3,"file":"time_factor.test.d.ts","sourceRoot":"","sources":["../../src/utils/time_factor.test.ts"],"names":[],"mappings":";AAGA,qBAAa,cAAe,SAAQ,mBAAM;IAClC,QAAQ,kBAsBb;CACF"}
package/package.json CHANGED
@@ -1,58 +1,58 @@
1
- {
2
- "name": "nole",
3
- "version": "3.0.0",
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 ./bin/nole.js ./test/**/*.test.ts ./src/**/*.test.ts",
18
- "coverage": "c8 npm run test"
19
- },
20
- "keywords": [
21
- "typescript",
22
- "test",
23
- "library"
24
- ],
25
- "author": "co3moz",
26
- "license": "ISC",
27
- "dependencies": {
28
- "camelcase": "^7.0.0",
29
- "colors": "^1.3.3",
30
- "commander": "^2.19.0",
31
- "glob": "^13.0.2"
32
- },
33
- "peerDependencies": {
34
- "tsx": "^4.21.0"
35
- },
36
- "devDependencies": {
37
- "@types/node": "^20.17.25",
38
- "c8": "^7.11.3",
39
- "tsx": "^4.21.0",
40
- "typescript": "^5.9.3"
41
- },
42
- "c8": {
43
- "all": true,
44
- "check-coverage": true,
45
- "report-dir": "./coverage",
46
- "reporter": [
47
- "text",
48
- "lcovonly",
49
- "text-summary"
50
- ],
51
- "include": [
52
- "src/**/*.ts"
53
- ],
54
- "exclude": [
55
- "**/*.test.ts"
56
- ]
57
- }
1
+ {
2
+ "name": "nole",
3
+ "version": "3.1.0",
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 ./bin/nole.js './test/**/*.test.ts' './src/**/*.test.ts'",
18
+ "coverage": "c8 node ./bin/nole.js './test/**/*.test.ts' './src/**/*.test.ts'"
19
+ },
20
+ "keywords": [
21
+ "typescript",
22
+ "test",
23
+ "library"
24
+ ],
25
+ "author": "co3moz",
26
+ "license": "MIT",
27
+ "dependencies": {
28
+ "colors": "^1.4.0",
29
+ "commander": "^15.0.0",
30
+ "glob": "^13.0.6"
31
+ },
32
+ "peerDependencies": {
33
+ "tsx": "^4.21.0"
34
+ },
35
+ "devDependencies": {
36
+ "@types/node": "^26.1.1",
37
+ "c8": "^12.0.0",
38
+ "tsx": "^4.23.1",
39
+ "typescript": "^7.0.2"
40
+ },
41
+ "c8": {
42
+ "all": true,
43
+ "check-coverage": true,
44
+ "report-dir": "./coverage",
45
+ "reporter": [
46
+ "text",
47
+ "lcovonly",
48
+ "text-summary"
49
+ ],
50
+ "include": [
51
+ "src/**/*.ts"
52
+ ],
53
+ "exclude": [
54
+ "**/*.test.ts",
55
+ "dist/**"
56
+ ]
57
+ }
58
58
  }
package/tsconfig.json CHANGED
@@ -1,16 +1,18 @@
1
- {
2
- "compilerOptions": {
3
- "target": "es2020",
4
- "module": "node16",
5
- "moduleResolution": "node16",
6
- "lib": ["es2020", "esnext"],
7
- "declaration": true,
8
- "declarationMap": true,
9
- "outDir": "dist",
10
- "strictNullChecks": true,
11
- "inlineSourceMap": true,
12
- "verbatimModuleSyntax": true
13
- },
14
- "include": ["src/**/*.ts"],
15
- "exclude": ["node_modules", "dist"]
16
- }
1
+ {
2
+ "compilerOptions": {
3
+ "target": "es2020",
4
+ "module": "node16",
5
+ "moduleResolution": "node16",
6
+ "lib": ["es2020", "esnext"],
7
+ "types": ["node"],
8
+ "declaration": true,
9
+ "declarationMap": true,
10
+ "outDir": "dist",
11
+ "rootDir": "./src",
12
+ "strictNullChecks": true,
13
+ "inlineSourceMap": true,
14
+ "verbatimModuleSyntax": true
15
+ },
16
+ "include": ["src/**/*.ts"],
17
+ "exclude": ["node_modules", "dist"]
18
+ }
package/src/const.ts DELETED
@@ -1,11 +0,0 @@
1
- import * as clrs from "colors/safe.js";
2
-
3
- export const colors = (clrs as any).default;
4
-
5
- export const OK_TEXT = colors.bold(colors.green(" (ok) "));
6
- export const SKIP_TEXT = colors.bold(colors.yellow(" (skip) "));
7
- export const DYNAMIC_SKIP_TEXT = colors.bold(colors.blue(" (dskip) "));
8
- export const FAILED_TEXT = colors.bold(colors.red(" (failed) "));
9
- export const HOOK_FAILED_TEXT = colors.bold(colors.red(" (hook failed) "));
10
-
11
- export const DEFAULT_TIMEOUT = 5000;
package/src/core.ts DELETED
@@ -1,89 +0,0 @@
1
- import { TEST_CLASS_KEY } from "./symbol.js";
2
-
3
- export interface TestClassInfo {
4
- dependencies?: Map<string, () => new () => BaseTest>;
5
- skip?: string;
6
- before?: () => Array<new () => BaseTest>;
7
- after?: () => Array<new () => BaseTest>;
8
- timeout?: number;
9
- }
10
-
11
- export class BaseTest {
12
- static [TEST_CLASS_KEY]: TestClassInfo = {
13
- dependencies: new Map(),
14
- timeout: 5000,
15
- };
16
- }
17
-
18
- type DependencyDefinitionRule<T extends BaseTest> = () => new () => T;
19
- type InferDependencyDefinition<T> = T extends () => infer U ? U : never;
20
-
21
- export function Test<
22
- Deps extends Record<string, DependencyDefinitionRule<any>> = {},
23
- >({
24
- dependencies,
25
- skip,
26
- before,
27
- after,
28
- timeout,
29
- }: {
30
- dependencies?: Deps;
31
- skip?: string;
32
- before?: () => Array<new () => BaseTest>;
33
- after?: () => Array<new () => BaseTest>;
34
- timeout?: number;
35
- } = {}) {
36
- type Props = {
37
- [K in keyof Deps]: InstanceType<InferDependencyDefinition<Deps[K]>>;
38
- };
39
-
40
- function wrap(superClassInfo: TestClassInfo): TestClassInfo {
41
- const deps = dependencies ? dependencies : ({} as Deps);
42
-
43
- const classInfo = { ...superClassInfo };
44
-
45
- if (!classInfo.dependencies) {
46
- classInfo.dependencies = new Map();
47
- } else {
48
- classInfo.dependencies = new Map(classInfo.dependencies);
49
- }
50
-
51
- if (before !== undefined) {
52
- classInfo.before = before;
53
- }
54
-
55
- if (after !== undefined) {
56
- classInfo.after = after;
57
- }
58
-
59
- for (const key of Object.keys(deps)) {
60
- const config = deps[key];
61
-
62
- if (TEST_CLASS_KEY in config) {
63
- classInfo.dependencies.set(key, (() => config) as any);
64
- } else if (typeof config === "function") {
65
- classInfo.dependencies.set(key, config);
66
- } else {
67
- throw new Error(`Invalid dependency configuration for key ${key}`);
68
- }
69
- }
70
-
71
- if (skip !== undefined) {
72
- classInfo.skip = skip;
73
- }
74
-
75
- if (timeout !== undefined) {
76
- classInfo.timeout = timeout;
77
- }
78
-
79
- return classInfo;
80
- }
81
-
82
- return class extends BaseTest {
83
- static [TEST_CLASS_KEY]: TestClassInfo = wrap(super[TEST_CLASS_KEY]);
84
-
85
- constructor() {
86
- super();
87
- }
88
- } as unknown as new () => Props & BaseTest;
89
- }
package/src/dynamic.ts DELETED
@@ -1,53 +0,0 @@
1
- import { BaseTest } from "./core.js";
2
- import {
3
- createInstanceIfNotExists,
4
- getFutureTestMap,
5
- getTestMap,
6
- updateInformationForClass,
7
- } from "./run.js";
8
- import { TestWrap } from "./test-wrap.js";
9
-
10
- export function skipTest(reason?: string): never {
11
- throw new NoleManualSkip(reason);
12
- }
13
-
14
- class NoleManualSkip extends Error {
15
- _nole_anchor = 1;
16
-
17
- constructor(public reason?: string) {
18
- super(`Dynamicly skipped! ${reason}`);
19
- }
20
- }
21
-
22
- export function getTest<T extends BaseTest>(
23
- test: () => new () => T,
24
- ): Partial<T> | null {
25
- const testWrap = getTestMap().get(test() as any) as TestWrap | undefined;
26
-
27
- if (!testWrap) {
28
- return null;
29
- }
30
-
31
- createInstanceIfNotExists(testWrap);
32
-
33
- return testWrap.testInstance;
34
- }
35
-
36
- export function addTest<T extends BaseTest>(test: () => new () => T) {
37
- const testMap = getTestMap();
38
- const remainingTests = getFutureTestMap();
39
-
40
- const testClass = test();
41
-
42
- if (testMap.has(testClass)) {
43
- return false;
44
- }
45
-
46
- const testWrap = new TestWrap(testClass);
47
- remainingTests.set(testClass, testWrap);
48
- testMap.set(testClass, testWrap);
49
-
50
- updateInformationForClass(testClass, testWrap, testMap);
51
-
52
- return true;
53
- }
@@ -1,41 +0,0 @@
1
- import { HookType, TestWrap } from "../test-wrap.js";
2
- import { Executor } from "../utils/executor.js";
3
- import { TimeFactor } from "../utils/time_factor.js";
4
- import {
5
- colors,
6
- DEFAULT_TIMEOUT,
7
- HOOK_FAILED_TEXT,
8
- OK_TEXT,
9
- } from "../const.js";
10
-
11
- export async function handleAfterEachHooks(test: TestWrap) {
12
- const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
13
-
14
- for (let [propertyKey, hook] of test.hooks.entries()) {
15
- if (hook.type != HookType.AfterEach) continue;
16
-
17
- let hookName = colors.bold(
18
- colors.yellow(
19
- test.name +
20
- (propertyKey != "afterEach"
21
- ? `.${propertyKey}:afterEach`
22
- : ":afterEach"),
23
- ),
24
- );
25
-
26
- try {
27
- await Executor(
28
- test.testInstance[propertyKey].bind(test.testInstance),
29
- timeout,
30
- );
31
-
32
- let timeText = TimeFactor(0, timeout);
33
-
34
- console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
35
- } catch (e) {
36
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
37
- console.error((e as any)?.stack ?? e);
38
- throw e;
39
- }
40
- }
41
- }
@@ -1,38 +0,0 @@
1
- import { HookType, TestWrap } from "../test-wrap.js";
2
- import { Executor } from "../utils/executor.js";
3
- import { TimeFactor } from "../utils/time_factor.js";
4
- import {
5
- colors,
6
- DEFAULT_TIMEOUT,
7
- HOOK_FAILED_TEXT,
8
- OK_TEXT,
9
- } from "../const.js";
10
-
11
- export async function handleAfterHooks(test: TestWrap) {
12
- const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
13
-
14
- for (let [propertyKey, hook] of test.hooks.entries()) {
15
- if (hook.type != HookType.After) continue;
16
-
17
- let hookName = colors.bold(
18
- colors.yellow(
19
- test.name +
20
- (propertyKey != "after" ? `.${propertyKey}:after` : ":after"),
21
- ),
22
- );
23
-
24
- try {
25
- await Executor(
26
- test.testInstance[propertyKey].bind(test.testInstance),
27
- timeout,
28
- );
29
- let timeText = TimeFactor(0, timeout);
30
-
31
- console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
32
- } catch (e) {
33
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
34
- console.error((e as any)?.stack ?? e);
35
- throw e;
36
- }
37
- }
38
- }
@@ -1,40 +0,0 @@
1
- import { HookType, TestWrap } from "../test-wrap.js";
2
- import { Executor } from "../utils/executor.js";
3
- import { TimeFactor } from "../utils/time_factor.js";
4
- import {
5
- colors,
6
- DEFAULT_TIMEOUT,
7
- HOOK_FAILED_TEXT,
8
- OK_TEXT,
9
- } from "../const.js";
10
-
11
- export async function handleBeforeEachHooks(test: TestWrap) {
12
- const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
13
-
14
- for (let [propertyKey, hook] of test.hooks.entries()) {
15
- if (hook.type != HookType.BeforeEach) continue;
16
- let hookName = colors.bold(
17
- colors.yellow(
18
- test.name +
19
- (propertyKey != "beforeEach"
20
- ? `.${propertyKey}:beforeEach`
21
- : ":beforeEach"),
22
- ),
23
- );
24
-
25
- try {
26
- await Executor(
27
- test.testInstance[propertyKey].bind(test.testInstance),
28
- timeout,
29
- );
30
-
31
- let timeText = TimeFactor(0, timeout);
32
-
33
- console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
34
- } catch (e) {
35
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
36
- console.error((e as any)?.stack ?? e);
37
- throw e;
38
- }
39
- }
40
- }
@@ -1,39 +0,0 @@
1
- import { HookType, TestWrap } from "../test-wrap.js";
2
- import { Executor } from "../utils/executor.js";
3
- import { TimeFactor } from "../utils/time_factor.js";
4
- import {
5
- colors,
6
- DEFAULT_TIMEOUT,
7
- HOOK_FAILED_TEXT,
8
- OK_TEXT,
9
- } from "../const.js";
10
-
11
- export async function handleBeforeHooks(test: TestWrap) {
12
- const timeout = test.config.timeout ?? DEFAULT_TIMEOUT;
13
-
14
- for (let [propertyKey, hook] of test.hooks.entries()) {
15
- if (hook.type != HookType.Before) continue;
16
-
17
- let hookName = colors.bold(
18
- colors.yellow(
19
- test.name +
20
- (propertyKey != "before" ? `.${propertyKey}:before` : ":before"),
21
- ),
22
- );
23
-
24
- try {
25
- await Executor(
26
- test.testInstance[propertyKey].bind(test.testInstance),
27
- timeout,
28
- );
29
-
30
- let timeText = TimeFactor(0, timeout);
31
-
32
- console.log(`${OK_TEXT} ${timeText} ${hookName}()`);
33
- } catch (e) {
34
- console.error(`${HOOK_FAILED_TEXT} ${hookName}()`);
35
- console.error((e as any)?.stack ?? e);
36
- throw e;
37
- }
38
- }
39
- }