@nestia/e2e 0.1.0 → 0.1.2

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.
package/README.md CHANGED
@@ -10,16 +10,17 @@ Helper library for E2E testing in NestJS.
10
10
  With `@nestia/e2e`, you can easily validate your NestJS server through E2E testing.
11
11
 
12
12
  ```typescript
13
- import typia from "typia";
14
- import {
15
- ArrayUtil,
16
- GaffComparator,
17
- RandomGenerator,
18
- TestValidator
13
+ import {
14
+ ArrayUtil,
15
+ GaffComparator,
16
+ RandomGenerator,
17
+ TestValidator,
19
18
  } from "@nestia/e2e";
19
+ import typia from "typia";
20
20
 
21
21
  import api from "@samchon/bbs-api/lib/index";
22
22
  import { IBbsArticle } from "@samchon/bbs-api/lib/structures/bbs/IBbsArticle";
23
+ import { IPage } from "@samchon/bbs-api/lib/structures/common/IPage";
23
24
 
24
25
  export async function test_api_bbs_article_index_sort(
25
26
  connection: api.IConnection,
@@ -29,8 +30,8 @@ export async function test_api_bbs_article_index_sort(
29
30
  const articles: IBbsArticle[] = await ArrayUtil.asyncRepeat(100, () =>
30
31
  api.functional.bbs.articles.store(connection, section, {
31
32
  writer: RandomGenerator.name(),
32
- title: RandomGenerator.paragraph(),
33
- body: RandomGenerator.content(),
33
+ title: RandomGenerator.paragraph(5)(),
34
+ body: RandomGenerator.content(8)()(),
34
35
  format: "txt",
35
36
  files: [],
36
37
  password: RandomGenerator.alphabets(8),
@@ -39,9 +40,17 @@ export async function test_api_bbs_article_index_sort(
39
40
  typia.assertEquals(articles);
40
41
 
41
42
  // PREPARE VALIDATOR
42
- const validator = validate_index_sort("BbsArticleProvider.idex()")(
43
- (input: IBbsArticle.IRequest) =>
44
- api.functional.bbs.articles.index(connection, section, input),
43
+ const validator = TestValidator.sort("BbsArticleProvider.index()")(
44
+ async (
45
+ sort: IPage.IRequest.Sort<IBbsArticle.IRequest.SortableColumns>,
46
+ ) => {
47
+ const page: IPage<IBbsArticle.ISummary> =
48
+ await api.functional.bbs.articles.index(connection, section, {
49
+ limit: 100,
50
+ sort,
51
+ });
52
+ return typia.assertEquals(page).data;
53
+ },
45
54
  );
46
55
 
47
56
  // DO VALIDATE
@@ -56,8 +65,8 @@ export async function test_api_bbs_article_index_sort(
56
65
  )(GaffComparator.strings((x) => [x.writer, x.title])),
57
66
  ];
58
67
  for (const comp of components) {
59
- await comp("+");
60
- await comp("-");
68
+ await comp("+", false);
69
+ await comp("-", false);
61
70
  }
62
71
  }
63
72
  ```
@@ -1,5 +1,9 @@
1
+ /**
2
+ * Utility functions for arrays.
3
+ *
4
+ * @author Jeongho Nam - https://github.com/samchon
5
+ */
1
6
  export declare namespace ArrayUtil {
2
- function at<T>(array: T[], index: number): T;
3
7
  function asyncFilter<Input>(elements: readonly Input[], pred: (elem: Input, index: number, array: readonly Input[]) => Promise<boolean>): Promise<Input[]>;
4
8
  function asyncForEach<Input>(elements: readonly Input[], closure: (elem: Input, index: number, array: readonly Input[]) => Promise<any>): Promise<void>;
5
9
  function asyncMap<Input, Output>(elements: readonly Input[], closure: (elem: Input, index: number, array: readonly Input[]) => Promise<Output>): Promise<Output[]>;
package/lib/ArrayUtil.js CHANGED
@@ -73,12 +73,13 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
73
  };
74
74
  Object.defineProperty(exports, "__esModule", { value: true });
75
75
  exports.ArrayUtil = void 0;
76
+ /**
77
+ * Utility functions for arrays.
78
+ *
79
+ * @author Jeongho Nam - https://github.com/samchon
80
+ */
76
81
  var ArrayUtil;
77
82
  (function (ArrayUtil) {
78
- function at(array, index) {
79
- return array[index < 0 ? array.length + index : index];
80
- }
81
- ArrayUtil.at = at;
82
83
  function asyncFilter(elements, pred) {
83
84
  return __awaiter(this, void 0, void 0, function () {
84
85
  var ret;
@@ -1 +1 @@
1
- {"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../src/ArrayUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../src/ArrayUtil.ts"],"names":[],"mappings":"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"}
@@ -7,8 +7,8 @@
7
7
  *
8
8
  * When you want to see example utilization cases, see the below example links.
9
9
  *
10
- * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
11
10
  * @example https://github.com/samchon/nestia-template/blob/master/src/test/index.ts
11
+ * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
12
12
  * @author Jeongho Nam - https://github.com/samchon
13
13
  */
14
14
  export declare namespace DynamicExecutor {
@@ -40,6 +40,13 @@ export declare namespace DynamicExecutor {
40
40
  * @returns Parameters
41
41
  */
42
42
  parameters: (name: string) => Parameters;
43
+ /**
44
+ * Filter function whether to run or not.
45
+ *
46
+ * @param name Function name
47
+ * @returns Whether to run or not
48
+ */
49
+ filter?: (name: string) => boolean;
43
50
  /**
44
51
  * Wrapper of test function.
45
52
  *
@@ -100,7 +100,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
100
100
  Object.defineProperty(exports, "__esModule", { value: true });
101
101
  exports.DynamicExecutor = void 0;
102
102
  var chalk_1 = __importDefault(require("chalk"));
103
- var cli_1 = __importDefault(require("cli"));
104
103
  var fs_1 = __importDefault(require("fs"));
105
104
  var path_1 = __importDefault(require("path"));
106
105
  var StopWatch_1 = require("./StopWatch");
@@ -113,8 +112,8 @@ var StopWatch_1 = require("./StopWatch");
113
112
  *
114
113
  * When you want to see example utilization cases, see the below example links.
115
114
  *
116
- * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
117
115
  * @example https://github.com/samchon/nestia-template/blob/master/src/test/index.ts
116
+ * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
118
117
  * @author Jeongho Nam - https://github.com/samchon
119
118
  */
120
119
  var DynamicExecutor;
@@ -164,17 +163,16 @@ var DynamicExecutor;
164
163
  var main = function (options) {
165
164
  return function (assert) {
166
165
  return function (path) { return __awaiter(_this, void 0, void 0, function () {
167
- var command, report, executor, iterator;
166
+ var report, executor, iterator;
168
167
  return __generator(this, function (_a) {
169
168
  switch (_a.label) {
170
169
  case 0:
171
- command = cli_1.default.parse();
172
170
  report = {
173
171
  location: path,
174
172
  time: Date.now(),
175
173
  executions: [],
176
174
  };
177
- executor = execute(options)(command)(report)(assert);
175
+ executor = execute(options)(report)(assert);
178
176
  iterator = iterate(executor);
179
177
  return [4 /*yield*/, iterator(path)];
180
178
  case 1:
@@ -245,111 +243,107 @@ var DynamicExecutor;
245
243
  return visitor;
246
244
  };
247
245
  var execute = function (options) {
248
- return function (command) {
249
- return function (report) {
250
- return function (assert) {
251
- return function (location, modulo) { return __awaiter(_this, void 0, void 0, function () {
252
- var _loop_1, _a, _b, _c, _i, key, state_1;
253
- var _this = this;
254
- return __generator(this, function (_d) {
255
- switch (_d.label) {
256
- case 0:
257
- _loop_1 = function (key) {
258
- var closure, func, label, result, _e, exp_1;
259
- return __generator(this, function (_f) {
260
- switch (_f.label) {
261
- case 0:
262
- if (command.exclude && key.indexOf(command.exclude) !== -1)
263
- return [2 /*return*/, "continue"];
264
- else if (command.include && key.indexOf(command.include) === -1)
265
- return [2 /*return*/, "continue"];
266
- else if (key.substring(0, options.prefix.length) !== options.prefix)
267
- return [2 /*return*/, "continue"];
268
- else if (!(modulo[key] instanceof Function))
269
- return [2 /*return*/, "continue"];
270
- closure = modulo[key];
271
- func = function () { return __awaiter(_this, void 0, void 0, function () {
272
- return __generator(this, function (_a) {
273
- switch (_a.label) {
274
- case 0:
275
- if (!(options.wrapper !== undefined)) return [3 /*break*/, 2];
276
- return [4 /*yield*/, options.wrapper(key, closure)];
277
- case 1:
278
- _a.sent();
279
- return [3 /*break*/, 4];
280
- case 2: return [4 /*yield*/, closure.apply(void 0, __spreadArray([], __read(options.parameters(key)), false))];
281
- case 3:
282
- _a.sent();
283
- _a.label = 4;
284
- case 4: return [2 /*return*/];
285
- }
286
- });
287
- }); };
288
- label = chalk_1.default.greenBright(key);
289
- result = {
290
- name: key,
291
- location: location,
292
- error: null,
293
- time: Date.now(),
294
- };
295
- report.executions.push(result);
296
- _f.label = 1;
297
- case 1:
298
- _f.trys.push([1, 6, , 7]);
299
- if (!(options.showElapsedTime === false)) return [3 /*break*/, 3];
300
- return [4 /*yield*/, func()];
301
- case 2:
302
- _f.sent();
303
- result.time = Date.now() - result.time;
304
- console.log(" - ".concat(label));
305
- return [3 /*break*/, 5];
306
- case 3:
307
- _e = result;
308
- return [4 /*yield*/, StopWatch_1.StopWatch.measure(func)];
309
- case 4:
310
- _e.time = _f.sent();
311
- console.log(" - ".concat(label, ": ").concat(chalk_1.default.yellowBright(result.time.toLocaleString()), " ms"));
312
- _f.label = 5;
313
- case 5: return [3 /*break*/, 7];
314
- case 6:
315
- exp_1 = _f.sent();
316
- if (!(exp_1 instanceof Error))
317
- return [2 /*return*/, { value: void 0 }];
318
- result.time = Date.now() - result.time;
319
- result.error = exp_1;
320
- console.log(" - ".concat(label, " -> ").concat(chalk_1.default.redBright(exp_1.name)));
321
- if (assert === true)
322
- throw exp_1;
323
- return [3 /*break*/, 7];
324
- case 7: return [2 /*return*/];
325
- }
326
- });
327
- };
328
- _a = modulo;
329
- _b = [];
330
- for (_c in _a)
331
- _b.push(_c);
332
- _i = 0;
333
- _d.label = 1;
334
- case 1:
335
- if (!(_i < _b.length)) return [3 /*break*/, 4];
336
- _c = _b[_i];
337
- if (!(_c in _a)) return [3 /*break*/, 3];
338
- key = _c;
339
- return [5 /*yield**/, _loop_1(key)];
340
- case 2:
341
- state_1 = _d.sent();
342
- if (typeof state_1 === "object")
343
- return [2 /*return*/, state_1.value];
344
- _d.label = 3;
345
- case 3:
346
- _i++;
347
- return [3 /*break*/, 1];
348
- case 4: return [2 /*return*/];
349
- }
350
- });
351
- }); };
352
- };
246
+ return function (report) {
247
+ return function (assert) {
248
+ return function (location, modulo) { return __awaiter(_this, void 0, void 0, function () {
249
+ var _loop_1, _a, _b, _c, _i, key, state_1;
250
+ var _this = this;
251
+ return __generator(this, function (_d) {
252
+ switch (_d.label) {
253
+ case 0:
254
+ _loop_1 = function (key) {
255
+ var closure, func, label, result, _e, exp_1;
256
+ return __generator(this, function (_f) {
257
+ switch (_f.label) {
258
+ case 0:
259
+ if (key.substring(0, options.prefix.length) !== options.prefix)
260
+ return [2 /*return*/, "continue"];
261
+ else if (!(modulo[key] instanceof Function))
262
+ return [2 /*return*/, "continue"];
263
+ else if (options.filter && options.filter(key) === false)
264
+ return [2 /*return*/, "continue"];
265
+ closure = modulo[key];
266
+ func = function () { return __awaiter(_this, void 0, void 0, function () {
267
+ return __generator(this, function (_a) {
268
+ switch (_a.label) {
269
+ case 0:
270
+ if (!(options.wrapper !== undefined)) return [3 /*break*/, 2];
271
+ return [4 /*yield*/, options.wrapper(key, closure)];
272
+ case 1:
273
+ _a.sent();
274
+ return [3 /*break*/, 4];
275
+ case 2: return [4 /*yield*/, closure.apply(void 0, __spreadArray([], __read(options.parameters(key)), false))];
276
+ case 3:
277
+ _a.sent();
278
+ _a.label = 4;
279
+ case 4: return [2 /*return*/];
280
+ }
281
+ });
282
+ }); };
283
+ label = chalk_1.default.greenBright(key);
284
+ result = {
285
+ name: key,
286
+ location: location,
287
+ error: null,
288
+ time: Date.now(),
289
+ };
290
+ report.executions.push(result);
291
+ _f.label = 1;
292
+ case 1:
293
+ _f.trys.push([1, 6, , 7]);
294
+ if (!(options.showElapsedTime === false)) return [3 /*break*/, 3];
295
+ return [4 /*yield*/, func()];
296
+ case 2:
297
+ _f.sent();
298
+ result.time = Date.now() - result.time;
299
+ console.log(" - ".concat(label));
300
+ return [3 /*break*/, 5];
301
+ case 3:
302
+ _e = result;
303
+ return [4 /*yield*/, StopWatch_1.StopWatch.measure(func)];
304
+ case 4:
305
+ _e.time = _f.sent();
306
+ console.log(" - ".concat(label, ": ").concat(chalk_1.default.yellowBright(result.time.toLocaleString()), " ms"));
307
+ _f.label = 5;
308
+ case 5: return [3 /*break*/, 7];
309
+ case 6:
310
+ exp_1 = _f.sent();
311
+ if (!(exp_1 instanceof Error))
312
+ return [2 /*return*/, { value: void 0 }];
313
+ result.time = Date.now() - result.time;
314
+ result.error = exp_1;
315
+ console.log(" - ".concat(label, " -> ").concat(chalk_1.default.redBright(exp_1.name)));
316
+ if (assert === true)
317
+ throw exp_1;
318
+ return [3 /*break*/, 7];
319
+ case 7: return [2 /*return*/];
320
+ }
321
+ });
322
+ };
323
+ _a = modulo;
324
+ _b = [];
325
+ for (_c in _a)
326
+ _b.push(_c);
327
+ _i = 0;
328
+ _d.label = 1;
329
+ case 1:
330
+ if (!(_i < _b.length)) return [3 /*break*/, 4];
331
+ _c = _b[_i];
332
+ if (!(_c in _a)) return [3 /*break*/, 3];
333
+ key = _c;
334
+ return [5 /*yield**/, _loop_1(key)];
335
+ case 2:
336
+ state_1 = _d.sent();
337
+ if (typeof state_1 === "object")
338
+ return [2 /*return*/, state_1.value];
339
+ _d.label = 3;
340
+ case 3:
341
+ _i++;
342
+ return [3 /*break*/, 1];
343
+ case 4: return [2 /*return*/];
344
+ }
345
+ });
346
+ }); };
353
347
  };
354
348
  };
355
349
  };
@@ -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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"}
@@ -59,7 +59,7 @@ var GaffComparator;
59
59
  };
60
60
  };
61
61
  function compare(x, y) {
62
- return x[0].localeCompare(y[0]);
62
+ return x.localeCompare(y);
63
63
  }
64
64
  function wrap(elem) {
65
65
  return Array.isArray(elem) ? elem : [elem];
@@ -1 +1 @@
1
- {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,IAAiB,cAAc,CA0D9B;AA1DD,WAAiB,cAAc;IAC3B;;;;;OAKG;IACU,sBAAO,GAChB,UAAI,MAAuC;QAC3C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpC,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IAND,CAMC,CAAC;IAEN;;;;;OAKG;IACU,oBAAK,GACd,UAAI,MAAuC;QAC3C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,IAAI,GAAG,UAAC,CAAI;gBACd,OAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAvB,CAAuB,CAAC;YAArD,CAAqD,CAAC;YAC1D,IAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IARD,CAQC,CAAC;IAEN;;;;;OAKG;IACU,sBAAO,GAChB,UAAI,OAAwC;QAC5C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAErC,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IAND,CAMC,CAAC;IAEN,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS;QACjC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,SAAS,IAAI,CAAI,IAAa;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC,EA1DgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA0D9B"}
1
+ {"version":3,"file":"GaffComparator.js","sourceRoot":"","sources":["../src/GaffComparator.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;GASG;AACH,IAAiB,cAAc,CA0D9B;AA1DD,WAAiB,cAAc;IAC3B;;;;;OAKG;IACU,sBAAO,GAChB,UAAI,MAAuC;QAC3C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,IAAM,CAAC,GAAa,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEpC,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpD,CAAC;IAND,CAMC,CAAC;IAEN;;;;;OAKG;IACU,oBAAK,GACd,UAAI,MAAuC;QAC3C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,IAAI,GAAG,UAAC,CAAI;gBACd,OAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAvB,CAAuB,CAAC;YAArD,CAAqD,CAAC;YAC1D,IAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5B,IAAM,CAAC,GAAa,IAAI,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IARD,CAQC,CAAC;IAEN;;;;;OAKG;IACU,sBAAO,GAChB,UAAI,OAAwC;QAC5C,OAAA,UAAC,CAAI,EAAE,CAAI;YACP,IAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,IAAM,CAAC,GAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAErC,IAAM,GAAG,GAAW,CAAC,CAAC,SAAS,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAV,CAAU,CAAC,CAAC;YACtD,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5C,CAAC;IAND,CAMC,CAAC;IAEN,SAAS,OAAO,CAAC,CAAS,EAAE,CAAS;QACjC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,SAAS,IAAI,CAAI,IAAa;QAC1B,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;AACL,CAAC,EA1DgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA0D9B"}
@@ -33,14 +33,14 @@ export declare namespace RandomGenerator {
33
33
  * @param sentences Number of sentences
34
34
  * @returns Paragraph generator
35
35
  */
36
- const paragraph: (sentences: number) => (wordMin?: number, wordMax?: number) => string;
36
+ const paragraph: (sentences?: number) => (wordMin?: number, wordMax?: number) => string;
37
37
  /**
38
38
  * Generate random content.
39
39
  *
40
40
  * @param paragraphes Number of paragraphes
41
41
  * @returns Currying function
42
42
  */
43
- const content: (paragraphes: number) => (sentenceMin?: number, sentenceMax?: number) => (wordMin?: number, wordMax?: number) => string;
43
+ const content: (paragraphes?: number) => (sentenceMin?: number, sentenceMax?: number) => (wordMin?: number, wordMax?: number) => string;
44
44
  /**
45
45
  * Generate random substring.
46
46
  *
@@ -61,6 +61,7 @@ var RandomGenerator;
61
61
  * @returns Paragraph generator
62
62
  */
63
63
  RandomGenerator.paragraph = function (sentences) {
64
+ if (sentences === void 0) { sentences = (0, tstl_1.randint)(2, 5); }
64
65
  /**
65
66
  * @param wordMin Minimum number of characters in a sentence
66
67
  * @param wordMax Maximum number of characters in a sentence
@@ -82,6 +83,7 @@ var RandomGenerator;
82
83
  * @returns Currying function
83
84
  */
84
85
  RandomGenerator.content = function (paragraphes) {
86
+ if (paragraphes === void 0) { paragraphes = (0, tstl_1.randint)(3, 8); }
85
87
  /**
86
88
  * @param sentenceMin Minimum number of sentences in a paragraph
87
89
  * @param sentenceMax Maximum number of sentences in a paragraph
@@ -1 +1 @@
1
- {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../src/RandomGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../src/RandomGenerator.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,9 @@ export declare namespace TestValidator {
24
24
  * If two values are different, then exception would be thrown.
25
25
  *
26
26
  * @param title Title of error message when different
27
+ * @return Currying function
28
+ *
29
+ * @example https://github.com/samchon/nestia-template/blob/master/src/test/features/api/bbs/test_api_bbs_article_index_search.ts
27
30
  */
28
31
  const index: (title: string) => <Solution extends IEntity<any>>(expected: Solution[]) => <Summary extends IEntity<any>>(gotten: Summary[], trace?: boolean) => void;
29
32
  /**
@@ -84,6 +84,9 @@ var TestValidator;
84
84
  * If two values are different, then exception would be thrown.
85
85
  *
86
86
  * @param title Title of error message when different
87
+ * @return Currying function
88
+ *
89
+ * @example https://github.com/samchon/nestia-template/blob/master/src/test/features/api/bbs/test_api_bbs_article_index_search.ts
87
90
  */
88
91
  TestValidator.index = function (title) {
89
92
  return function (expected) {
@@ -1 +1 @@
1
- {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,49 +1,52 @@
1
- {
2
- "name": "@nestia/e2e",
3
- "version": "0.1.0",
4
- "description": "E2E test utilify functions",
5
- "main": "lib/index.js",
6
- "scripts": {
7
- "build": "rimraf lib && tsc",
8
- "dev": "npm run build -- --watch",
9
- "test": "node lib/test"
10
- },
11
- "repository": {
12
- "type": "git",
13
- "url": "https://github.com/samchon/nestia"
14
- },
15
- "keywords": [
16
- "e2e",
17
- "nestia",
18
- "nestjs",
19
- "test",
20
- "tdd",
21
- "utility"
22
- ],
23
- "author": "Jeongho Nam",
24
- "license": "MIT",
25
- "bugs": {
26
- "url": "https://github.com/samchon/nestia/issues"
27
- },
28
- "homepage": "https://github.com/samchon/nestia#readme",
29
- "devDependencies": {
30
- "@types/cli": "^0.11.21",
31
- "@types/node": "^18.11.18",
32
- "rimraf": "^4.1.2",
33
- "typescript": "^4.9.5"
34
- },
35
- "dependencies": {
36
- "chalk": "^4.1.2",
37
- "cli": "^1.0.1",
38
- "tstl": "^2.5.13"
39
- },
40
- "files": [
41
- "lib",
42
- "src",
43
- "!lib/test",
44
- "!src/test",
45
- "README.md",
46
- "LICENSE",
47
- "package.json"
48
- ]
49
- }
1
+ {
2
+ "name": "@nestia/e2e",
3
+ "version": "0.1.2",
4
+ "description": "E2E test utilify functions",
5
+ "main": "lib/index.js",
6
+ "scripts": {
7
+ "build": "rimraf lib && tsc",
8
+ "dev": "npm run build -- --watch",
9
+ "prettier": "prettier --write ./src/**/*.ts",
10
+ "test": "node lib/test"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/samchon/nestia"
15
+ },
16
+ "keywords": [
17
+ "e2e",
18
+ "nestia",
19
+ "nestjs",
20
+ "test",
21
+ "tdd",
22
+ "utility"
23
+ ],
24
+ "author": "Jeongho Nam",
25
+ "license": "MIT",
26
+ "bugs": {
27
+ "url": "https://github.com/samchon/nestia/issues"
28
+ },
29
+ "homepage": "https://github.com/samchon/nestia#readme",
30
+ "devDependencies": {
31
+ "@trivago/prettier-plugin-sort-imports": "^4.0.0",
32
+ "@types/cli": "^0.11.21",
33
+ "@types/node": "^18.11.18",
34
+ "prettier": "^2.8.3",
35
+ "rimraf": "^4.1.2",
36
+ "typescript": "^4.9.5"
37
+ },
38
+ "dependencies": {
39
+ "chalk": "^4.1.2",
40
+ "cli": "^1.0.1",
41
+ "tstl": "^2.5.13"
42
+ },
43
+ "files": [
44
+ "lib",
45
+ "src",
46
+ "!lib/test",
47
+ "!src/test",
48
+ "README.md",
49
+ "LICENSE",
50
+ "package.json"
51
+ ]
52
+ }
package/src/ArrayUtil.ts CHANGED
@@ -1,8 +1,9 @@
1
+ /**
2
+ * Utility functions for arrays.
3
+ *
4
+ * @author Jeongho Nam - https://github.com/samchon
5
+ */
1
6
  export namespace ArrayUtil {
2
- export function at<T>(array: T[], index: number): T {
3
- return array[index < 0 ? array.length + index : index];
4
- }
5
-
6
7
  export async function asyncFilter<Input>(
7
8
  elements: readonly Input[],
8
9
  pred: (
@@ -1,5 +1,4 @@
1
1
  import chalk from "chalk";
2
- import cli from "cli";
3
2
  import fs from "fs";
4
3
  import NodePath from "path";
5
4
 
@@ -14,8 +13,8 @@ import { StopWatch } from "./StopWatch";
14
13
  *
15
14
  * When you want to see example utilization cases, see the below example links.
16
15
  *
17
- * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
18
16
  * @example https://github.com/samchon/nestia-template/blob/master/src/test/index.ts
17
+ * @example https://github.com/samchon/backend/blob/master/src/test/index.ts
19
18
  * @author Jeongho Nam - https://github.com/samchon
20
19
  */
21
20
  export namespace DynamicExecutor {
@@ -50,6 +49,14 @@ export namespace DynamicExecutor {
50
49
  */
51
50
  parameters: (name: string) => Parameters;
52
51
 
52
+ /**
53
+ * Filter function whether to run or not.
54
+ *
55
+ * @param name Function name
56
+ * @returns Whether to run or not
57
+ */
58
+ filter?: (name: string) => boolean;
59
+
53
60
  /**
54
61
  * Wrapper of test function.
55
62
  *
@@ -165,14 +172,13 @@ export namespace DynamicExecutor {
165
172
  <Arguments extends any[]>(options: IOptions<Arguments>) =>
166
173
  (assert: boolean) =>
167
174
  async (path: string) => {
168
- const command: ICommand = cli.parse();
169
175
  const report: IReport = {
170
176
  location: path,
171
177
  time: Date.now(),
172
178
  executions: [],
173
179
  };
174
180
 
175
- const executor = execute(options)(command)(report)(assert);
181
+ const executor = execute(options)(report)(assert);
176
182
  const iterator = iterate(executor);
177
183
  await iterator(path);
178
184
 
@@ -203,20 +209,15 @@ export namespace DynamicExecutor {
203
209
 
204
210
  const execute =
205
211
  <Arguments extends any[]>(options: IOptions<Arguments>) =>
206
- (command: ICommand) =>
207
212
  (report: IReport) =>
208
213
  (assert: boolean) =>
209
214
  async (location: string, modulo: Module<Arguments>): Promise<void> => {
210
215
  for (const key in modulo) {
211
- if (command.exclude && key.indexOf(command.exclude) !== -1)
212
- continue;
213
- else if (command.include && key.indexOf(command.include) === -1)
214
- continue;
215
- else if (
216
- key.substring(0, options.prefix.length) !== options.prefix
217
- )
216
+ if (key.substring(0, options.prefix.length) !== options.prefix)
218
217
  continue;
219
218
  else if (!(modulo[key] instanceof Function)) continue;
219
+ else if (options.filter && options.filter(key) === false)
220
+ continue;
220
221
 
221
222
  const closure: Closure<Arguments> = modulo[key];
222
223
  const func = async () => {
@@ -259,10 +260,6 @@ export namespace DynamicExecutor {
259
260
  }
260
261
  };
261
262
 
262
- interface ICommand {
263
- include?: string;
264
- exclude?: string;
265
- }
266
263
  interface Module<Arguments extends any[]> {
267
264
  [key: string]: Closure<Arguments>;
268
265
  }
@@ -60,7 +60,7 @@ export namespace GaffComparator {
60
60
  };
61
61
 
62
62
  function compare(x: string, y: string) {
63
- return x[0].localeCompare(y[0]);
63
+ return x.localeCompare(y);
64
64
  }
65
65
 
66
66
  function wrap<T>(elem: T | T[]): T[] {
@@ -58,7 +58,7 @@ export namespace RandomGenerator {
58
58
  * @returns Paragraph generator
59
59
  */
60
60
  export const paragraph =
61
- (sentences: number) =>
61
+ (sentences: number = randint(2, 5)) =>
62
62
  /**
63
63
  * @param wordMin Minimum number of characters in a sentence
64
64
  * @param wordMax Maximum number of characters in a sentence
@@ -77,7 +77,7 @@ export namespace RandomGenerator {
77
77
  * @returns Currying function
78
78
  */
79
79
  export const content =
80
- (paragraphes: number) =>
80
+ (paragraphes: number = randint(3, 8)) =>
81
81
  /**
82
82
  * @param sentenceMin Minimum number of sentences in a paragraph
83
83
  * @param sentenceMax Maximum number of sentences in a paragraph
@@ -36,6 +36,9 @@ export namespace TestValidator {
36
36
  * If two values are different, then exception would be thrown.
37
37
  *
38
38
  * @param title Title of error message when different
39
+ * @return Currying function
40
+ *
41
+ * @example https://github.com/samchon/nestia-template/blob/master/src/test/features/api/bbs/test_api_bbs_article_index_search.ts
39
42
  */
40
43
  export const index =
41
44
  (title: string) =>