@nestia/e2e 10.0.2 → 11.0.0-dev.20260312

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.
@@ -41,76 +41,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
41
41
  step((generator = generator.apply(thisArg, _arguments || [])).next());
42
42
  });
43
43
  };
44
- var __generator = (this && this.__generator) || function (thisArg, body) {
45
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
46
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
47
- function verb(n) { return function (v) { return step([n, v]); }; }
48
- function step(op) {
49
- if (f) throw new TypeError("Generator is already executing.");
50
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
51
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
52
- if (y = 0, t) op = [op[0] & 2, t.value];
53
- switch (op[0]) {
54
- case 0: case 1: t = op; break;
55
- case 4: _.label++; return { value: op[1], done: false };
56
- case 5: _.label++; y = op[1]; op = [0]; continue;
57
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
58
- default:
59
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
60
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
61
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
62
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
63
- if (t[2]) _.ops.pop();
64
- _.trys.pop(); continue;
65
- }
66
- op = body.call(thisArg, _);
67
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
68
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
69
- }
70
- };
71
- var __values = (this && this.__values) || function(o) {
72
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
73
- if (m) return m.call(o);
74
- if (o && typeof o.length === "number") return {
75
- next: function () {
76
- if (o && i >= o.length) o = void 0;
77
- return { value: o && o[i++], done: !o };
78
- }
79
- };
80
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
81
- };
82
- var __read = (this && this.__read) || function (o, n) {
83
- var m = typeof Symbol === "function" && o[Symbol.iterator];
84
- if (!m) return o;
85
- var i = m.call(o), r, ar = [], e;
86
- try {
87
- while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
88
- }
89
- catch (error) { e = { error: error }; }
90
- finally {
91
- try {
92
- if (r && !r.done && (m = i["return"])) m.call(i);
93
- }
94
- finally { if (e) throw e.error; }
95
- }
96
- return ar;
97
- };
98
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
99
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
100
- if (ar || !(i in from)) {
101
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
102
- ar[i] = from[i];
103
- }
104
- }
105
- return to.concat(ar || Array.prototype.slice.call(from));
106
- };
107
44
  var __importDefault = (this && this.__importDefault) || function (mod) {
108
45
  return (mod && mod.__esModule) ? mod : { "default": mod };
109
46
  };
110
47
  Object.defineProperty(exports, "__esModule", { value: true });
111
48
  exports.DynamicExecutor = void 0;
112
- var fs_1 = __importDefault(require("fs"));
113
- var path_1 = __importDefault(require("path"));
49
+ const fs_1 = __importDefault(require("fs"));
50
+ const path_1 = __importDefault(require("path"));
114
51
  /**
115
52
  * Dynamic Executor running prefixed functions.
116
53
  *
@@ -134,7 +71,6 @@ var path_1 = __importDefault(require("path"));
134
71
  */
135
72
  var DynamicExecutor;
136
73
  (function (DynamicExecutor) {
137
- var _this = this;
138
74
  /**
139
75
  * Prepare dynamic executor in strict mode.
140
76
  *
@@ -145,7 +81,7 @@ var DynamicExecutor;
145
81
  * @param props Properties of dynamic execution
146
82
  * @returns Report of dynamic test functions execution
147
83
  */
148
- DynamicExecutor.assert = function (props) { return main(true)(props); };
84
+ DynamicExecutor.assert = (props) => main(true)(props);
149
85
  /**
150
86
  * Prepare dynamic executor in loose mode.
151
87
  *
@@ -156,218 +92,85 @@ var DynamicExecutor;
156
92
  * @param props Properties of dynamic executor
157
93
  * @returns Report of dynamic test functions execution
158
94
  */
159
- DynamicExecutor.validate = function (props) { return main(false)(props); };
160
- var main = function (assert) {
161
- return function (props) { return __awaiter(_this, void 0, void 0, function () {
162
- var report, executor, processes;
163
- var _this = this;
164
- var _a, _b;
165
- return __generator(this, function (_c) {
166
- switch (_c.label) {
167
- case 0:
168
- report = {
169
- location: props.location,
170
- time: Date.now(),
171
- executions: [],
172
- };
173
- executor = execute(props)(report)(assert);
174
- return [4 /*yield*/, iterate({
175
- extension: (_a = props.extension) !== null && _a !== void 0 ? _a : "js",
176
- location: props.location,
177
- executor: executor,
178
- })];
179
- case 1:
180
- processes = _c.sent();
181
- return [4 /*yield*/, Promise.all(new Array((_b = props.simultaneous) !== null && _b !== void 0 ? _b : 1).fill(0).map(function () { return __awaiter(_this, void 0, void 0, function () {
182
- var task;
183
- return __generator(this, function (_a) {
184
- switch (_a.label) {
185
- case 0:
186
- if (!(processes.length !== 0)) return [3 /*break*/, 2];
187
- task = processes.shift();
188
- return [4 /*yield*/, (task === null || task === void 0 ? void 0 : task())];
189
- case 1:
190
- _a.sent();
191
- return [3 /*break*/, 0];
192
- case 2: return [2 /*return*/];
193
- }
194
- });
195
- }); }))];
196
- case 2:
197
- _c.sent();
198
- report.time = Date.now() - report.time;
199
- return [2 /*return*/, report];
95
+ DynamicExecutor.validate = (props) => main(false)(props);
96
+ const main = (assert) => (props) => __awaiter(this, void 0, void 0, function* () {
97
+ var _a, _b;
98
+ const report = {
99
+ location: props.location,
100
+ time: Date.now(),
101
+ executions: [],
102
+ };
103
+ const executor = execute(props)(report)(assert);
104
+ const processes = yield iterate({
105
+ extension: (_a = props.extension) !== null && _a !== void 0 ? _a : "js",
106
+ location: props.location,
107
+ executor,
108
+ });
109
+ yield Promise.all(new Array((_b = props.simultaneous) !== null && _b !== void 0 ? _b : 1).fill(0).map(() => __awaiter(this, void 0, void 0, function* () {
110
+ while (processes.length !== 0) {
111
+ const task = processes.shift();
112
+ yield (task === null || task === void 0 ? void 0 : task());
113
+ }
114
+ })));
115
+ report.time = Date.now() - report.time;
116
+ return report;
117
+ });
118
+ const iterate = (props) => __awaiter(this, void 0, void 0, function* () {
119
+ const container = [];
120
+ const visitor = (path) => __awaiter(this, void 0, void 0, function* () {
121
+ const directory = yield fs_1.default.promises.readdir(path);
122
+ for (const file of directory) {
123
+ const location = path_1.default.resolve(`${path}/${file}`);
124
+ const stats = yield fs_1.default.promises.lstat(location);
125
+ if (stats.isDirectory() === true) {
126
+ yield visitor(location);
127
+ continue;
200
128
  }
201
- });
202
- }); };
203
- };
204
- var iterate = function (props) { return __awaiter(_this, void 0, void 0, function () {
205
- var container, visitor;
206
- var _this = this;
207
- return __generator(this, function (_a) {
208
- switch (_a.label) {
209
- case 0:
210
- container = [];
211
- visitor = function (path) { return __awaiter(_this, void 0, void 0, function () {
212
- var directory, _loop_1, directory_1, directory_1_1, file, e_1_1;
213
- var e_1, _a;
214
- return __generator(this, function (_b) {
215
- switch (_b.label) {
216
- case 0: return [4 /*yield*/, fs_1.default.promises.readdir(path)];
217
- case 1:
218
- directory = _b.sent();
219
- _loop_1 = function (file) {
220
- var location_1, stats, modulo;
221
- return __generator(this, function (_c) {
222
- switch (_c.label) {
223
- case 0:
224
- location_1 = path_1.default.resolve("".concat(path, "/").concat(file));
225
- return [4 /*yield*/, fs_1.default.promises.lstat(location_1)];
226
- case 1:
227
- stats = _c.sent();
228
- if (!(stats.isDirectory() === true)) return [3 /*break*/, 3];
229
- return [4 /*yield*/, visitor(location_1)];
230
- case 2:
231
- _c.sent();
232
- return [2 /*return*/, "continue"];
233
- case 3:
234
- if (file.substr(-3) !== ".".concat(props.extension))
235
- return [2 /*return*/, "continue"];
236
- _c.label = 4;
237
- case 4: return [4 /*yield*/, Promise.resolve("".concat(location_1)).then(function (s) { return __importStar(require(s)); })];
238
- case 5:
239
- modulo = _c.sent();
240
- container.push(function () { return props.executor(location_1, modulo); });
241
- return [2 /*return*/];
242
- }
243
- });
244
- };
245
- _b.label = 2;
246
- case 2:
247
- _b.trys.push([2, 7, 8, 9]);
248
- directory_1 = __values(directory), directory_1_1 = directory_1.next();
249
- _b.label = 3;
250
- case 3:
251
- if (!!directory_1_1.done) return [3 /*break*/, 6];
252
- file = directory_1_1.value;
253
- return [5 /*yield**/, _loop_1(file)];
254
- case 4:
255
- _b.sent();
256
- _b.label = 5;
257
- case 5:
258
- directory_1_1 = directory_1.next();
259
- return [3 /*break*/, 3];
260
- case 6: return [3 /*break*/, 9];
261
- case 7:
262
- e_1_1 = _b.sent();
263
- e_1 = { error: e_1_1 };
264
- return [3 /*break*/, 9];
265
- case 8:
266
- try {
267
- if (directory_1_1 && !directory_1_1.done && (_a = directory_1.return)) _a.call(directory_1);
268
- }
269
- finally { if (e_1) throw e_1.error; }
270
- return [7 /*endfinally*/];
271
- case 9: return [2 /*return*/];
272
- }
273
- });
274
- }); };
275
- return [4 /*yield*/, visitor(props.location)];
276
- case 1:
277
- _a.sent();
278
- return [2 /*return*/, container];
129
+ else if (file.substr(-3) !== `.${props.extension}`)
130
+ continue;
131
+ const modulo = yield Promise.resolve(`${location}`).then(s => __importStar(require(s)));
132
+ container.push(() => props.executor(location, modulo));
279
133
  }
280
134
  });
281
- }); };
282
- var execute = function (props) {
283
- return function (report) {
284
- return function (assert) {
285
- return function (location, modulo) { return __awaiter(_this, void 0, void 0, function () {
286
- var _loop_2, _a, _b, _c, key, closure, e_2_1;
287
- var e_2, _d;
288
- return __generator(this, function (_e) {
289
- switch (_e.label) {
290
- case 0:
291
- _loop_2 = function (key, closure) {
292
- var func, result, _f, exp_1;
293
- return __generator(this, function (_g) {
294
- switch (_g.label) {
295
- case 0:
296
- if (key.substring(0, props.prefix.length) !== props.prefix ||
297
- typeof closure !== "function" ||
298
- (props.filter && props.filter(key) === false))
299
- return [2 /*return*/, "continue"];
300
- func = function () {
301
- if (props.wrapper !== undefined)
302
- return props.wrapper(key, closure, props.parameters(key));
303
- else
304
- return closure.apply(void 0, __spreadArray([], __read(props.parameters(key)), false));
305
- };
306
- result = {
307
- name: key,
308
- location: location,
309
- value: undefined,
310
- error: null,
311
- started_at: new Date().toISOString(),
312
- completed_at: new Date().toISOString(),
313
- };
314
- report.executions.push(result);
315
- _g.label = 1;
316
- case 1:
317
- _g.trys.push([1, 3, 4, 5]);
318
- _f = result;
319
- return [4 /*yield*/, func()];
320
- case 2:
321
- _f.value = _g.sent();
322
- result.completed_at = new Date().toISOString();
323
- return [3 /*break*/, 5];
324
- case 3:
325
- exp_1 = _g.sent();
326
- result.error = exp_1;
327
- if (assert === true)
328
- throw exp_1;
329
- return [3 /*break*/, 5];
330
- case 4:
331
- result.completed_at = new Date().toISOString();
332
- if (props.onComplete)
333
- props.onComplete(result);
334
- return [7 /*endfinally*/];
335
- case 5: return [2 /*return*/];
336
- }
337
- });
338
- };
339
- _e.label = 1;
340
- case 1:
341
- _e.trys.push([1, 6, 7, 8]);
342
- _a = __values(Object.entries(modulo)), _b = _a.next();
343
- _e.label = 2;
344
- case 2:
345
- if (!!_b.done) return [3 /*break*/, 5];
346
- _c = __read(_b.value, 2), key = _c[0], closure = _c[1];
347
- return [5 /*yield**/, _loop_2(key, closure)];
348
- case 3:
349
- _e.sent();
350
- _e.label = 4;
351
- case 4:
352
- _b = _a.next();
353
- return [3 /*break*/, 2];
354
- case 5: return [3 /*break*/, 8];
355
- case 6:
356
- e_2_1 = _e.sent();
357
- e_2 = { error: e_2_1 };
358
- return [3 /*break*/, 8];
359
- case 7:
360
- try {
361
- if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
362
- }
363
- finally { if (e_2) throw e_2.error; }
364
- return [7 /*endfinally*/];
365
- case 8: return [2 /*return*/];
366
- }
367
- });
368
- }); };
135
+ yield visitor(props.location);
136
+ return container;
137
+ });
138
+ const execute = (props) => (report) => (assert) => (location, modulo) => __awaiter(this, void 0, void 0, function* () {
139
+ for (const [key, closure] of Object.entries(modulo)) {
140
+ if (key.substring(0, props.prefix.length) !== props.prefix ||
141
+ typeof closure !== "function" ||
142
+ (props.filter && props.filter(key) === false))
143
+ continue;
144
+ const func = () => {
145
+ if (props.wrapper !== undefined)
146
+ return props.wrapper(key, closure, props.parameters(key));
147
+ else
148
+ return closure(...props.parameters(key));
369
149
  };
370
- };
371
- };
150
+ const result = {
151
+ name: key,
152
+ location,
153
+ value: undefined,
154
+ error: null,
155
+ started_at: new Date().toISOString(),
156
+ completed_at: new Date().toISOString(),
157
+ };
158
+ report.executions.push(result);
159
+ try {
160
+ result.value = yield func();
161
+ result.completed_at = new Date().toISOString();
162
+ }
163
+ catch (exp) {
164
+ result.error = exp;
165
+ if (assert === true)
166
+ throw exp;
167
+ }
168
+ finally {
169
+ result.completed_at = new Date().toISOString();
170
+ if (props.onComplete)
171
+ props.onComplete(result);
172
+ }
173
+ }
174
+ });
372
175
  })(DynamicExecutor || (exports.DynamicExecutor = DynamicExecutor = {}));
373
176
  //# sourceMappingURL=DynamicExecutor.js.map
@@ -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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"}
@@ -107,13 +107,11 @@ var GaffComparator;
107
107
  * @param getter - Function that extracts string value(s) from input objects
108
108
  * @returns A comparator function suitable for Array.sort()
109
109
  */
110
- GaffComparator.strings = function (getter) {
111
- return function (x, y) {
112
- var a = wrap(getter(x));
113
- var b = wrap(getter(y));
114
- var idx = a.findIndex(function (v, i) { return v !== b[i]; });
115
- return idx !== -1 ? compare(a[idx], b[idx]) : 0;
116
- };
110
+ GaffComparator.strings = (getter) => (x, y) => {
111
+ const a = wrap(getter(x));
112
+ const b = wrap(getter(y));
113
+ const idx = a.findIndex((v, i) => v !== b[i]);
114
+ return idx !== -1 ? compare(a[idx], b[idx]) : 0;
117
115
  };
118
116
  /**
119
117
  * Creates a comparator function for date-based sorting with automatic string
@@ -190,16 +188,12 @@ var GaffComparator;
190
188
  * @param getter - Function that extracts date string(s) from input objects
191
189
  * @returns A comparator function suitable for Array.sort()
192
190
  */
193
- GaffComparator.dates = function (getter) {
194
- return function (x, y) {
195
- var take = function (v) {
196
- return wrap(getter(v)).map(function (str) { return new Date(str).getTime(); });
197
- };
198
- var a = take(x);
199
- var b = take(y);
200
- var idx = a.findIndex(function (v, i) { return v !== b[i]; });
201
- return idx !== -1 ? a[idx] - b[idx] : 0;
202
- };
191
+ GaffComparator.dates = (getter) => (x, y) => {
192
+ const take = (v) => wrap(getter(v)).map((str) => new Date(str).getTime());
193
+ const a = take(x);
194
+ const b = take(y);
195
+ const idx = a.findIndex((v, i) => v !== b[i]);
196
+ return idx !== -1 ? a[idx] - b[idx] : 0;
203
197
  };
204
198
  /**
205
199
  * Creates a comparator function for numerical sorting with multi-value
@@ -272,15 +266,13 @@ var GaffComparator;
272
266
  * @param closure - Function that extracts number value(s) from input objects
273
267
  * @returns A comparator function suitable for Array.sort()
274
268
  */
275
- GaffComparator.numbers = function (closure) {
276
- return function (x, y) {
277
- var a = wrap(closure(x));
278
- var b = wrap(closure(y));
279
- var idx = a.findIndex(function (v, i) { return v !== b[i]; });
280
- return idx !== -1 ? a[idx] - b[idx] : 0;
281
- };
269
+ GaffComparator.numbers = (closure) => (x, y) => {
270
+ const a = wrap(closure(x));
271
+ const b = wrap(closure(y));
272
+ const idx = a.findIndex((v, i) => v !== b[i]);
273
+ return idx !== -1 ? a[idx] - b[idx] : 0;
282
274
  };
283
- var compare = function (x, y) { return x.localeCompare(y); };
284
- var wrap = function (elem) { return (Array.isArray(elem) ? elem : [elem]); };
275
+ const compare = (x, y) => x.localeCompare(y);
276
+ const wrap = (elem) => (Array.isArray(elem) ? elem : [elem]);
285
277
  })(GaffComparator || (exports.GaffComparator = GaffComparator = {}));
286
278
  //# sourceMappingURL=GaffComparator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":"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"}
package/lib/MapUtil.js CHANGED
@@ -83,7 +83,7 @@ var MapUtil;
83
83
  if (map.has(key)) {
84
84
  return map.get(key);
85
85
  }
86
- var newValue = value();
86
+ const newValue = value();
87
87
  map.set(key, newValue);
88
88
  return newValue;
89
89
  }
@@ -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,IAAM,QAAQ,GAAG,KAAK,EAAE,CAAC;QACzB,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACvB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAPe,YAAI,OAOnB,CAAA;AACH,CAAC,EA9DgB,OAAO,uBAAP,OAAO,QA8DvB"}
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,YAAI,OAOnB,CAAA;AACH,CAAC,EA9DgB,OAAO,uBAAP,OAAO,QA8DvB"}