@nestia/e2e 12.0.0-rc.4 → 12.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.
@@ -48,6 +48,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
48
48
  exports.DynamicExecutor = void 0;
49
49
  const fs_1 = __importDefault(require("fs"));
50
50
  const path_1 = __importDefault(require("path"));
51
+ const url_1 = require("url");
51
52
  /**
52
53
  * Dynamic Executor running prefixed functions.
53
54
  *
@@ -95,6 +96,9 @@ var DynamicExecutor;
95
96
  DynamicExecutor.validate = (props) => main(false)(props);
96
97
  const main = (assert) => (props) => __awaiter(this, void 0, void 0, function* () {
97
98
  var _a, _b;
99
+ const simultaneous = (_a = props.simultaneous) !== null && _a !== void 0 ? _a : 1;
100
+ if (!Number.isSafeInteger(simultaneous) || simultaneous <= 0)
101
+ throw new Error("DynamicExecutor: simultaneous must be a positive integer.");
98
102
  const report = {
99
103
  location: props.location,
100
104
  time: Date.now(),
@@ -102,13 +106,13 @@ var DynamicExecutor;
102
106
  };
103
107
  const executor = execute(props)(report)(assert);
104
108
  const processes = yield iterate({
105
- extension: (_a = props.extension) !== null && _a !== void 0 ? _a : "js",
109
+ extension: (_b = props.extension) !== null && _b !== void 0 ? _b : "js",
106
110
  location: props.location,
107
111
  prefix: props.prefix,
108
112
  filter: props.filter,
109
113
  executor,
110
114
  });
111
- yield Promise.all(new Array((_b = props.simultaneous) !== null && _b !== void 0 ? _b : 1).fill(0).map(() => __awaiter(this, void 0, void 0, function* () {
115
+ yield Promise.all(new Array(simultaneous).fill(0).map(() => __awaiter(this, void 0, void 0, function* () {
112
116
  while (processes.length !== 0) {
113
117
  const task = processes.shift();
114
118
  yield task === null || task === void 0 ? void 0 : task();
@@ -118,11 +122,25 @@ var DynamicExecutor;
118
122
  return report;
119
123
  });
120
124
  const specifier = (location) => {
121
- const relative = path_1.default.relative(__dirname, path_1.default.resolve(location))
125
+ const absolute = path_1.default.resolve(location);
126
+ const relative = path_1.default.relative(__dirname, absolute)
122
127
  .split(path_1.default.sep)
123
128
  .join("/");
124
- return `./${relative}`;
129
+ if (relative.length !== 0 && path_1.default.isAbsolute(relative) === false)
130
+ return `./${relative}`;
131
+ // No relative expression exists. On Windows `path.relative` cannot express a
132
+ // path between two drive roots and hands back the absolute target, so the
133
+ // "./" prefix used to produce "./C:/..." — neither relative nor absolute —
134
+ // which resolved against this directory and failed with MODULE_NOT_FOUND.
135
+ // Fall back to the spelling the active module system accepts: `require()`,
136
+ // which a CommonJS build downlevels `import()` into, takes a filesystem path
137
+ // and rejects a URL, while a native ESM `import()` takes a URL and rejects a
138
+ // Windows filesystem path.
139
+ return isCommonJS() ? absolute : (0, url_1.pathToFileURL)(absolute).href;
125
140
  };
141
+ const isCommonJS = () => typeof module === "object" &&
142
+ module !== null &&
143
+ typeof require === "function";
126
144
  const iterate = (props) => __awaiter(this, void 0, void 0, function* () {
127
145
  const container = [];
128
146
  const visitor = (path) => __awaiter(this, void 0, void 0, function* () {
@@ -134,7 +152,10 @@ var DynamicExecutor;
134
152
  yield visitor(location);
135
153
  continue;
136
154
  }
137
- else if (file.substr(-3) !== `.${props.extension}`)
155
+ // Compare the whole suffix. A fixed-width slice silently assumed a
156
+ // two-character extension, so every longer one ("mjs", "cjs", "tsx")
157
+ // matched nothing and the run reported success with no test executed.
158
+ else if (file.endsWith(`.${props.extension}`) === false)
138
159
  continue;
139
160
  // GATE BY FILE NAME (PREFIX & FILTER), SO THAT EXCLUDED FILES ARE
140
161
  // NEVER IMPORTED.
@@ -1 +1 @@
1
- {"version":3,"file":"DynamicExecutor.js","sourceRoot":"","sources":["../src/DynamicExecutor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DynamicExecutor.js","sourceRoot":"","sources":["../src/DynamicExecutor.ts"],"names":[],"mappings":"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"}
@@ -111,7 +111,9 @@ var GaffComparator;
111
111
  const a = wrap(getter(x));
112
112
  const b = wrap(getter(y));
113
113
  const idx = a.findIndex((v, i) => v !== b[i]);
114
- return idx !== -1 ? compare(a[idx], b[idx]) : 0;
114
+ return idx !== -1
115
+ ? compare(a[idx], b[idx])
116
+ : a.length - b.length;
115
117
  };
116
118
  /**
117
119
  * Creates a comparator function for date-based sorting with automatic string
@@ -193,7 +195,7 @@ var GaffComparator;
193
195
  const a = take(x);
194
196
  const b = take(y);
195
197
  const idx = a.findIndex((v, i) => v !== b[i]);
196
- return idx !== -1 ? a[idx] - b[idx] : 0;
198
+ return idx !== -1 ? a[idx] - b[idx] : a.length - b.length;
197
199
  };
198
200
  /**
199
201
  * Creates a comparator function for numerical sorting with multi-value
@@ -270,7 +272,7 @@ var GaffComparator;
270
272
  const a = wrap(closure(x));
271
273
  const b = wrap(closure(y));
272
274
  const idx = a.findIndex((v, i) => v !== b[i]);
273
- return idx !== -1 ? a[idx] - b[idx] : 0;
275
+ return idx !== -1 ? a[idx] - b[idx] : a.length - b.length;
274
276
  };
275
277
  const compare = (x, y) => x.localeCompare(y);
276
278
  const wrap = (elem) => (Array.isArray(elem) ? elem : [elem]);
@@ -1 +1 @@
1
- {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,IAAiB,cAAc,CAgP9B;AAhPD,WAAiB,cAAc;IAC7B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAyDG;IACU,sBAAO,GAClB,CAAI,MAAuC,EAAE,EAAE,CAC/C,CAAC,CAAI,EAAE,CAAI,EAAU,EAAE;QACrB,MAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAEpC,MAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAE,EAAE,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA0EG;IACU,oBAAK,GAChB,CAAI,MAAuC,EAAE,EAAE,CAC/C,CAAC,CAAI,EAAE,CAAI,EAAU,EAAE;QACrB,MAAM,IAAI,GAAG,CAAC,CAAI,EAAE,EAAE,CACpB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,MAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;QAE5B,MAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsEG;IACU,sBAAO,GAClB,CAAI,OAAwC,EAAE,EAAE,CAChD,CAAC,CAAI,EAAE,CAAI,EAAU,EAAE;QACrB,MAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAErC,MAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAE,GAAG,CAAC,CAAC,GAAG,CAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEJ,MAAM,OAAO,GAAG,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAE7D,MAAM,IAAI,GAAG,CAAI,IAAa,EAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AAChF,CAAC,EAhPgB,cAAc,aAAd,cAAc,GAAd,cAAc,QAgP9B"}
1
+ {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":"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"}
package/lib/MapUtil.d.ts CHANGED
@@ -72,7 +72,8 @@ export declare namespace MapUtil {
72
72
  * @template V - The type of values in the Map
73
73
  * @param map - The Map to retrieve from or update
74
74
  * @param key - The key to look up in the Map
75
- * @param value - A factory function that creates the value if key doesn't exist
75
+ * @param value - A factory function that creates the value if key doesn't
76
+ * exist
76
77
  * @returns The existing value if found, or the newly created value
77
78
  */
78
79
  function take<K, V>(map: Map<K, V>, key: K, value: () => V): V;
package/lib/MapUtil.js CHANGED
@@ -76,7 +76,8 @@ var MapUtil;
76
76
  * @template V - The type of values in the Map
77
77
  * @param map - The Map to retrieve from or update
78
78
  * @param key - The key to look up in the Map
79
- * @param value - A factory function that creates the value if key doesn't exist
79
+ * @param value - A factory function that creates the value if key doesn't
80
+ * exist
80
81
  * @returns The existing value if found, or the newly created value
81
82
  */
82
83
  function take(map, key, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"MapUtil.js","sourceRoot":"","sources":["../src/MapUtil.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,IAAiB,OAAO,CA8DvB;AA9DD,WAAiB,OAAO;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACH,SAAgB,IAAI,CAAO,GAAc,EAAE,GAAM,EAAE,KAAc;QAC/D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAPe,QAAA,IAAI,OAOnB,CAAA;AACH,CAAC,EA9DgB,OAAO,aAAP,OAAO,GAAP,OAAO,QA8DvB"}
1
+ {"version":3,"file":"MapUtil.js","sourceRoot":"","sources":["../src/MapUtil.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,IAAiB,OAAO,CA+DvB;AA/DD,WAAiB,OAAO;IACtB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,SAAgB,IAAI,CAAO,GAAc,EAAE,GAAM,EAAE,KAAc;QAC/D,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAM,CAAC;QAC3B,CAAC;QACD,MAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAPe,QAAA,IAAI,OAOnB,CAAA;AACH,CAAC,EA/DgB,OAAO,aAAP,OAAO,GAAP,OAAO,QA+DvB"}
@@ -336,9 +336,7 @@ var TestValidator;
336
336
  expected = expected.slice(0, length);
337
337
  gotten = gotten.slice(0, length);
338
338
  const xIds = get_ids(expected).slice(0, length);
339
- const yIds = get_ids(gotten)
340
- .filter((id) => id >= xIds[0])
341
- .slice(0, length);
339
+ const yIds = get_ids(gotten).slice(0, length);
342
340
  const equals = xIds.every((x, i) => x === yIds[i]);
343
341
  if (equals === true)
344
342
  return;
@@ -478,7 +476,7 @@ var TestValidator;
478
476
  })(TestValidator || (exports.TestValidator = TestValidator = {}));
479
477
  /** @internal */
480
478
  function get_ids(entities) {
481
- return entities.map((entity) => entity.id).sort((x, y) => (x < y ? -1 : 1));
479
+ return entities.map((entity) => entity.id.toString());
482
480
  }
483
481
  /** @internal */
484
482
  function is_promise(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,uDAAoD;AACpD,4DAAyD;AAEzD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,IAAiB,aAAa,CAqkB7B;AArkBD,WAAiB,aAAa;IAC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,SAAgB,SAAS,CAGvB,KAAa,EACb,SAAY;QAEZ,MAAM,OAAO,GAAG,GAAG,EAAE,CACnB,UAAU,KAAK,wCAAwC,CAAC;QAE1D,SAAS;QACT,IAAI,OAAO,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,IAAI,SAAS,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnD,OAAO,SAAgB,CAAC;QAC1B,CAAC;QAED,UAAU;QACV,MAAM,MAAM,GAA+B,SAAS,EAAE,CAAC;QACvD,IAAI,OAAO,MAAM,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAChD,OAAO,SAAgB,CAAC;QAC1B,CAAC;QAED,eAAe;QACf,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3C,MAAM;iBACH,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,EAAE,CAAC;;oBACxB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC;iBACD,KAAK,CAAC,MAAM,CAAC,CAAC;QACnB,CAAC,CAAQ,CAAC;IACZ,CAAC;IA/Be,cAAA,SAAS,YA+BxB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACH,SAAgB,MAAM,CACpB,KAAa,EACb,CAAI,EACJ,CAAuB,EACvB,SAAoC;QAEpC,MAAM,IAAI,GAAa,IAAA,6BAAa,EAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,MAAM;YACb,MAAM,IAAI,KAAK,CACb;gBACE,UAAU,KAAK,+BAA+B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;gBACjE,IAAI;gBACJ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACN,CAAC;IAfe,cAAA,MAAM,SAerB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACH,SAAgB,SAAS,CACvB,KAAa,EACb,CAAI,EACJ,CAAuB,EACvB,SAAoC;QAEpC,MAAM,IAAI,GAAa,IAAA,6BAAa,EAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YACnB,MAAM,IAAI,KAAK,CACb;gBACE,UAAU,KAAK,6CAA6C;gBAC5D,IAAI;gBACJ,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;aAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;IACN,CAAC;IAfe,cAAA,SAAS,YAexB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACH,SAAgB,KAAK,CACnB,KAAa,EACb,IAAa;QAEb,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,KAAK,6BAA6B,CAAC;QACnE,IAAI,CAAC;YACH,MAAM,MAAM,GAAM,IAAI,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,MAAM,CAAC;gBACpB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3C,MAAM;qBACH,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;qBACtB,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CACrC,CAAC;;gBACN,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;mBAAO,CAAC;YACP,OAAO,SAAgB,CAAC;QAC1B,CAAC;IACH,CAAC;IAjBe,cAAA,KAAK,QAiBpB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,SAAgB,SAAS,CACvB,KAAa,EACb,MAAyB,EACzB,IAAa;QAEb,IAAI,OAAO,MAAM,KAAK,QAAQ;YAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,CAAC,MAAe,EAAE,EAAE,CAClC,OAAO,MAAM,KAAK,QAAQ;YACxB,CAAC,CAAC,UAAU,KAAK,yBAAyB,MAAM,CAAC,IAAI,CACjD,MAAM,CACP,SAAS,MAAM,GAAG;YACrB,CAAC,CAAC,UAAU,KAAK,yBAAyB,MAAM,CAAC,IAAI,CACjD,MAAM,CACP,kBAAkB,CAAC;QAC1B,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAgB,EAAE,CAC3C,OAAO,GAAG,KAAK,QAAQ;YACvB,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW;YACpC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,KAAK,CACP,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,WAAW;gBAC7D,CAAC,CAAC,GAAG,CAAC,MAAM;gBACZ,CAAC,CAAC,SAAS,CACd,CACF,CAAC;QACR,IAAI,CAAC;YACH,MAAM,MAAM,GAAM,IAAI,EAAE,CAAC;YACzB,IAAI,UAAU,CAAC,MAAM,CAAC;gBACpB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3C,MAAM;qBACH,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,MAAM,GAAG,GAAiB,SAAS,CAAC,GAAG,CAAC,CAAC;oBACzC,IAAI,GAAG;wBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;;wBAChB,OAAO,EAAE,CAAC;gBACjB,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CACrC,CAAC;;gBACN,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAiB,SAAS,CAAC,GAAG,CAAC,CAAC;YACzC,IAAI,GAAG;gBAAE,MAAM,GAAG,CAAC;YACnB,OAAO,SAAU,CAAC;QACpB,CAAC;IACH,CAAC;IA5Ce,cAAA,SAAS,YA4CxB,CAAA;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACU,mBAAK,GAAG,CACnB,KAAa,EACb,QAAa,EACb,MAAW,EACX,KAAK,GAAY,KAAK,EAChB,EAAE;QACR,MAAM,MAAM,GAAW,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QAChE,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEjC,MAAM,IAAI,GAAa,OAAO,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAa,OAAO,CAAC,MAAM,CAAC;aACnC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,CAAC,CAAE,CAAC;aAC9B,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAEpB,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO;aACvB,IAAI,KAAK,KAAK,IAAI;YACrB,OAAO,CAAC,GAAG,CAAC;gBACV,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;aACb,CAAC,CAAC;QACL,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,6DAA6D,CAC7E,CAAC;IACJ,CAAC,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACU,oBAAM,GACjB,CACE,KAAa,EACb,MAA6C,EAC7C,KAAe,EACf,WAAW,GAAW,CAAC,EACvB,EAAE,CACJ,CACE,KAA4C,EAC5C,EAAE;QACF,MAAM,OAAO,GAAa,iCAAe,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACrE,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,MAAM,GAAW,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAa,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CACjD,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAC7B,CAAC;YACF,MAAM,MAAM,GAAa,MAAM,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAC7D,aAAa,CAAC,KAAK,CACjB,GAAG,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EACvC,QAAQ,EACR,MAAM,CACP,CAAC;QACJ,CAAC;IACH,CAAC,CAAA,CAAC;IAgDJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiDG;IACU,kBAAI,GACf,CAOE,KAAa,EACb,MAA4C,EAC5C,EAAE,CACJ,CAAC,GAAG,MAAgB,EAAE,EAAE,CACxB,CAAC,IAA4B,EAAE,MAA6B,EAAE,EAAE,CAChE,yBAAqD,EAAE,8DAAhD,SAAoB,EAAE,KAAK,GAAY,KAAK;QACjD,IAAI,IAAI,GAAQ,MAAM,MAAM,CAC1B,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,SAAS,GAAG,KAAK,EAAW,CAAa,CACnE,CAAC;QACF,IAAI,MAAM;YAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,QAAQ,GACZ,SAAS,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YACxC,IACE,MAAM,CAAC,MAAM,KAAK,CAAC;gBACnB,IAAI,CAAC,MAAM;gBACV,IAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS;gBACzC,KAAK;gBAEL,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAE,IAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,MAAM,IAAI,KAAK,CACb,UAAU,KAAK,sBAAsB,SAAS,IAAI,MAAM,CAAC,IAAI,CAC3D,IAAI,CACL,IAAI,CACN,CAAC;QACJ,CAAC;IACH,CAAC,CAAA,CAAC;AAqBN,CAAC,EArkBgB,aAAa,aAAb,aAAa,GAAb,aAAa,QAqkB7B;AAMD,gBAAgB;AAChB,SAAS,OAAO,CAA8B,QAAkB;IAC9D,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,gBAAgB;AAChB,SAAS,UAAU,CAAC,KAAU;IAC5B,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,OAAQ,KAAa,CAAC,IAAI,KAAK,UAAU;QACzC,OAAQ,KAAa,CAAC,KAAK,KAAK,UAAU,CAC3C,CAAC;AACJ,CAAC;AAED,gBAAgB;AAChB,SAAS,SAAS,CAAI,IAAS,EAAE,IAA4B;IAC3D,KAAK,IAAI,CAAC,GAAW,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,EAAE,IAAI,CAAC,CAAC,CAAE,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;IACrD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,15 @@ const json_equal_to = (exception) => (x) => (y) => {
8
8
  return;
9
9
  else if (typeof x !== typeof y)
10
10
  container.push(accessor);
11
+ // `typeof null` is "object", so the check above does not separate an
12
+ // object from null. Settle every null pair here, before the Array and
13
+ // Object branches walk into one: `null` is a JSON value, and comparing
14
+ // it against an object is a difference at this accessor, exactly as it
15
+ // already was when the two operands were swapped.
16
+ else if (x === null || y === null) {
17
+ if (x !== y)
18
+ container.push(accessor);
19
+ }
11
20
  else if (x instanceof Array)
12
21
  if (!(y instanceof Array))
13
22
  container.push(accessor);
@@ -1 +1 @@
1
- {"version":3,"file":"json_equal_to.js","sourceRoot":"","sources":["../../src/internal/json_equal_to.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GACxB,CAAC,SAAmC,EAAE,EAAE,CACxC,CAAI,CAAI,EAAE,EAAE,CACZ,CAAC,CAAuB,EAAY,EAAE;IACpC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GACX,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAM,EAAE,EAAE,CACX,CAAC,CAAM,EAAQ,EAAE;QACf,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU;YAAE,OAAO;aAC1D,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aACpD,IAAI,CAAC,YAAY,KAAK;YACzB,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;gBAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,IAAI,CAAC,YAAY,MAAM;YAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IACJ,MAAM,KAAK,GACT,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAQ,EAAE,EAAE,CACb,CAAC,CAAQ,EAAQ,EAAE;QACjB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;QAChE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IACJ,MAAM,MAAM,GACV,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAM,EAAE,EAAE,CACX,CAAC,CAAM,EAAQ,EAAE,CACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACxD,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAlCS,QAAA,aAAa,GAAb,aAAa,CAkCtB"}
1
+ {"version":3,"file":"json_equal_to.js","sourceRoot":"","sources":["../../src/internal/json_equal_to.ts"],"names":[],"mappings":";;;AAAO,MAAM,aAAa,GACxB,CAAC,SAAmC,EAAE,EAAE,CACxC,CAAI,CAAI,EAAE,EAAE,CACZ,CAAC,CAAuB,EAAY,EAAE;IACpC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,MAAM,OAAO,GACX,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAM,EAAE,EAAE,CACX,CAAC,CAAM,EAAQ,EAAE;QACf,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,OAAO,CAAC,KAAK,UAAU;YAAE,OAAO;aAC1D,IAAI,OAAO,CAAC,KAAK,OAAO,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzD,qEAAqE;QACrE,sEAAsE;QACtE,uEAAuE;QACvE,uEAAuE;QACvE,kDAAkD;aAC7C,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;YAClC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;aAAM,IAAI,CAAC,YAAY,KAAK;YAC3B,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC;gBAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;gBAC/C,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACxB,IAAI,CAAC,YAAY,MAAM;YAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aAChD,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC,CAAC;IACJ,MAAM,KAAK,GACT,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAQ,EAAE,EAAE,CACb,CAAC,CAAQ,EAAQ,EAAE;QACjB,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;YAAE,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,SAAS,CAAC,CAAC;QAChE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IACJ,MAAM,MAAM,GACV,CAAC,QAAgB,EAAE,EAAE,CACrB,CAAC,CAAM,EAAE,EAAE,CACX,CAAC,CAAM,EAAQ,EAAE,CACf,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SACX,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;SACxD,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,QAAQ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAzCS,QAAA,aAAa,GAAb,aAAa,CAyCtB"}
package/package.json CHANGED
@@ -1,8 +1,7 @@
1
1
  {
2
2
  "name": "@nestia/e2e",
3
- "version": "12.0.0-rc.4",
3
+ "version": "12.1.0",
4
4
  "description": "E2E test utilify functions",
5
- "types": "lib/index.d.ts",
6
5
  "main": "lib/index.js",
7
6
  "exports": {
8
7
  ".": {
@@ -46,5 +45,6 @@
46
45
  "scripts": {
47
46
  "build": "rimraf lib && ttsc",
48
47
  "dev": "rimraf lib && ttsc --watch"
49
- }
48
+ },
49
+ "types": "lib/index.d.ts"
50
50
  }
@@ -1,5 +1,6 @@
1
1
  import fs from "fs";
2
2
  import NodePath from "path";
3
+ import { pathToFileURL } from "url";
3
4
 
4
5
  /**
5
6
  * Dynamic Executor running prefixed functions.
@@ -184,6 +185,11 @@ export namespace DynamicExecutor {
184
185
  async <Arguments extends any[]>(
185
186
  props: IProps<Arguments>,
186
187
  ): Promise<IReport> => {
188
+ const simultaneous: number = props.simultaneous ?? 1;
189
+ if (!Number.isSafeInteger(simultaneous) || simultaneous <= 0)
190
+ throw new Error(
191
+ "DynamicExecutor: simultaneous must be a positive integer.",
192
+ );
187
193
  const report: IReport = {
188
194
  location: props.location,
189
195
  time: Date.now(),
@@ -199,7 +205,7 @@ export namespace DynamicExecutor {
199
205
  executor,
200
206
  });
201
207
  await Promise.all(
202
- new Array(props.simultaneous ?? 1).fill(0).map(async () => {
208
+ new Array(simultaneous).fill(0).map(async () => {
203
209
  while (processes.length !== 0) {
204
210
  const task = processes.shift();
205
211
  await task?.();
@@ -211,15 +217,28 @@ export namespace DynamicExecutor {
211
217
  };
212
218
 
213
219
  const specifier = (location: string): string => {
214
- const relative: string = NodePath.relative(
215
- __dirname,
216
- NodePath.resolve(location),
217
- )
220
+ const absolute: string = NodePath.resolve(location);
221
+ const relative: string = NodePath.relative(__dirname, absolute)
218
222
  .split(NodePath.sep)
219
223
  .join("/");
220
- return `./${relative}`;
224
+ if (relative.length !== 0 && NodePath.isAbsolute(relative) === false)
225
+ return `./${relative}`;
226
+ // No relative expression exists. On Windows `path.relative` cannot express a
227
+ // path between two drive roots and hands back the absolute target, so the
228
+ // "./" prefix used to produce "./C:/..." — neither relative nor absolute —
229
+ // which resolved against this directory and failed with MODULE_NOT_FOUND.
230
+ // Fall back to the spelling the active module system accepts: `require()`,
231
+ // which a CommonJS build downlevels `import()` into, takes a filesystem path
232
+ // and rejects a URL, while a native ESM `import()` takes a URL and rejects a
233
+ // Windows filesystem path.
234
+ return isCommonJS() ? absolute : pathToFileURL(absolute).href;
221
235
  };
222
236
 
237
+ const isCommonJS = (): boolean =>
238
+ typeof module === "object" &&
239
+ module !== null &&
240
+ typeof require === "function";
241
+
223
242
  const iterate = async <Arguments extends any[]>(props: {
224
243
  location: string;
225
244
  extension: string;
@@ -237,7 +256,11 @@ export namespace DynamicExecutor {
237
256
  if (stats.isDirectory() === true) {
238
257
  await visitor(location);
239
258
  continue;
240
- } else if (file.substr(-3) !== `.${props.extension}`) continue;
259
+ }
260
+ // Compare the whole suffix. A fixed-width slice silently assumed a
261
+ // two-character extension, so every longer one ("mjs", "cjs", "tsx")
262
+ // matched nothing and the run reported success with no test executed.
263
+ else if (file.endsWith(`.${props.extension}`) === false) continue;
241
264
  // GATE BY FILE NAME (PREFIX & FILTER), SO THAT EXCLUDED FILES ARE
242
265
  // NEVER IMPORTED.
243
266
  else if (file.startsWith(props.prefix) === false) continue;
@@ -110,7 +110,9 @@ export namespace GaffComparator {
110
110
  const b: string[] = wrap(getter(y));
111
111
 
112
112
  const idx: number = a.findIndex((v, i) => v !== b[i]);
113
- return idx !== -1 ? compare(a[idx]!, b[idx]!) : 0;
113
+ return idx !== -1
114
+ ? compare(a[idx]!, b[idx]!)
115
+ : a.length - b.length;
114
116
  };
115
117
 
116
118
  /**
@@ -197,7 +199,7 @@ export namespace GaffComparator {
197
199
  const b: number[] = take(y);
198
200
 
199
201
  const idx: number = a.findIndex((v, i) => v !== b[i]);
200
- return idx !== -1 ? a[idx]! - b[idx]! : 0;
202
+ return idx !== -1 ? a[idx]! - b[idx]! : a.length - b.length;
201
203
  };
202
204
 
203
205
  /**
@@ -278,7 +280,7 @@ export namespace GaffComparator {
278
280
  const b: number[] = wrap(closure(y));
279
281
 
280
282
  const idx: number = a.findIndex((v, i) => v !== b[i]);
281
- return idx !== -1 ? a[idx]! - b[idx]! : 0;
283
+ return idx !== -1 ? a[idx]! - b[idx]! : a.length - b.length;
282
284
  };
283
285
 
284
286
  const compare = (x: string, y: string) => x.localeCompare(y);
package/src/MapUtil.ts CHANGED
@@ -10,12 +10,12 @@
10
10
  * ```typescript
11
11
  * // Create a cache with lazy initialization
12
12
  * const cache = new Map<string, ExpensiveObject>();
13
- *
13
+ *
14
14
  * const obj = MapUtil.take(cache, "key1", () => {
15
15
  * console.log("Creating expensive object...");
16
16
  * return new ExpensiveObject();
17
17
  * });
18
- *
18
+ *
19
19
  * // Subsequent calls return cached value without re-creating
20
20
  * const sameObj = MapUtil.take(cache, "key1", () => new ExpensiveObject());
21
21
  * console.log(obj === sameObj); // true
@@ -36,7 +36,7 @@ export namespace MapUtil {
36
36
  * ```typescript
37
37
  * // Simple caching example
38
38
  * const userCache = new Map<number, User>();
39
- *
39
+ *
40
40
  * const user = MapUtil.take(userCache, userId, () => {
41
41
  * // This expensive operation only runs if userId is not cached
42
42
  * return fetchUserFromDatabase(userId);
@@ -44,7 +44,7 @@ export namespace MapUtil {
44
44
  *
45
45
  * // Configuration object caching
46
46
  * const configs = new Map<string, Config>();
47
- *
47
+ *
48
48
  * const dbConfig = MapUtil.take(configs, "database", () => ({
49
49
  * host: "localhost",
50
50
  * port: 5432,
@@ -53,7 +53,7 @@ export namespace MapUtil {
53
53
  *
54
54
  * // Lazy computation results
55
55
  * const computationCache = new Map<string, number>();
56
- *
56
+ *
57
57
  * const result = MapUtil.take(computationCache, "fibonacci-40", () => {
58
58
  * console.log("Computing fibonacci(40)...");
59
59
  * return fibonacci(40); // Only computed once
@@ -62,8 +62,8 @@ export namespace MapUtil {
62
62
  * // Using with complex keys
63
63
  * const cache = new Map<[number, number], Matrix>();
64
64
  * const key: [number, number] = [rows, cols];
65
- *
66
- * const matrix = MapUtil.take(cache, key, () =>
65
+ *
66
+ * const matrix = MapUtil.take(cache, key, () =>
67
67
  * generateIdentityMatrix(rows, cols)
68
68
  * );
69
69
  * ```;
@@ -72,7 +72,8 @@ export namespace MapUtil {
72
72
  * @template V - The type of values in the Map
73
73
  * @param map - The Map to retrieve from or update
74
74
  * @param key - The key to look up in the Map
75
- * @param value - A factory function that creates the value if key doesn't exist
75
+ * @param value - A factory function that creates the value if key doesn't
76
+ * exist
76
77
  * @returns The existing value if found, or the newly created value
77
78
  */
78
79
  export function take<K, V>(map: Map<K, V>, key: K, value: () => V): V {
@@ -362,9 +362,7 @@ export namespace TestValidator {
362
362
  gotten = gotten.slice(0, length);
363
363
 
364
364
  const xIds: string[] = get_ids(expected).slice(0, length);
365
- const yIds: string[] = get_ids(gotten)
366
- .filter((id) => id >= xIds[0]!)
367
- .slice(0, length);
365
+ const yIds: string[] = get_ids(gotten).slice(0, length);
368
366
 
369
367
  const equals: boolean = xIds.every((x, i) => x === yIds[i]);
370
368
  if (equals === true) return;
@@ -616,7 +614,7 @@ interface IEntity<Type extends string | number | bigint> {
616
614
 
617
615
  /** @internal */
618
616
  function get_ids<Entity extends IEntity<any>>(entities: Entity[]): string[] {
619
- return entities.map((entity) => entity.id).sort((x, y) => (x < y ? -1 : 1));
617
+ return entities.map((entity) => entity.id.toString());
620
618
  }
621
619
 
622
620
  /** @internal */
@@ -9,7 +9,14 @@ export const json_equal_to =
9
9
  (y: any): void => {
10
10
  if (typeof x === "function" || typeof y === "function") return;
11
11
  else if (typeof x !== typeof y) container.push(accessor);
12
- else if (x instanceof Array)
12
+ // `typeof null` is "object", so the check above does not separate an
13
+ // object from null. Settle every null pair here, before the Array and
14
+ // Object branches walk into one: `null` is a JSON value, and comparing
15
+ // it against an object is a difference at this accessor, exactly as it
16
+ // already was when the two operands were swapped.
17
+ else if (x === null || y === null) {
18
+ if (x !== y) container.push(accessor);
19
+ } else if (x instanceof Array)
13
20
  if (!(y instanceof Array)) container.push(accessor);
14
21
  else array(accessor)(x)(y);
15
22
  else if (x instanceof Object) object(accessor)(x)(y);