@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 +22 -13
- package/lib/ArrayUtil.d.ts +5 -1
- package/lib/ArrayUtil.js +5 -4
- package/lib/ArrayUtil.js.map +1 -1
- package/lib/DynamicExecutor.d.ts +8 -1
- package/lib/DynamicExecutor.js +104 -110
- package/lib/DynamicExecutor.js.map +1 -1
- package/lib/GaffComparator.js +1 -1
- package/lib/GaffComparator.js.map +1 -1
- package/lib/RandomGenerator.d.ts +2 -2
- package/lib/RandomGenerator.js +2 -0
- package/lib/RandomGenerator.js.map +1 -1
- package/lib/TestValidator.d.ts +3 -0
- package/lib/TestValidator.js +3 -0
- package/lib/TestValidator.js.map +1 -1
- package/package.json +52 -49
- package/src/ArrayUtil.ts +5 -4
- package/src/DynamicExecutor.ts +13 -16
- package/src/GaffComparator.ts +1 -1
- package/src/RandomGenerator.ts +2 -2
- package/src/TestValidator.ts +3 -0
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
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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 =
|
|
43
|
-
(
|
|
44
|
-
|
|
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
|
```
|
package/lib/ArrayUtil.d.ts
CHANGED
|
@@ -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;
|
package/lib/ArrayUtil.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../src/ArrayUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAiB,SAAS,
|
|
1
|
+
{"version":3,"file":"ArrayUtil.js","sourceRoot":"","sources":["../src/ArrayUtil.ts"],"names":[],"mappings":"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"}
|
package/lib/DynamicExecutor.d.ts
CHANGED
|
@@ -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
|
*
|
package/lib/DynamicExecutor.js
CHANGED
|
@@ -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
|
|
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)(
|
|
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 (
|
|
249
|
-
return function (
|
|
250
|
-
return function (
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,
|
|
1
|
+
{"version":3,"file":"DynamicExecutor.js","sourceRoot":"","sources":["../src/DynamicExecutor.ts"],"names":[],"mappings":"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"}
|
package/lib/GaffComparator.js
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/RandomGenerator.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
43
|
+
const content: (paragraphes?: number) => (sentenceMin?: number, sentenceMax?: number) => (wordMin?: number, wordMax?: number) => string;
|
|
44
44
|
/**
|
|
45
45
|
* Generate random substring.
|
|
46
46
|
*
|
package/lib/RandomGenerator.js
CHANGED
|
@@ -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":";;;AAAA,6BAA8C;AAC9C,sCAAgD;AAEhD;;;;GAIG;AACH,IAAiB,eAAe,CAyK/B;AAzKD,WAAiB,eAAe;IAC5B;;uEAEmE;IACnE,IAAM,UAAU,GAAG,4BAA4B,CAAC;IAChD,IAAM,OAAO,GAAW,YAAY,GAAG,UAAU,CAAC;IAElD;;;;;OAKG;IACH,SAAgB,SAAS,CAAC,MAAc;QACpC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;aACnB,IAAI,CAAC,EAAE,CAAC;aACR,GAAG,CAAC,cAAM,OAAA,UAAU,CAAC,IAAA,cAAO,EAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAA7C,CAA6C,CAAC;aACxD,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IALe,yBAAS,YAKxB,CAAA;IAED;;;;;;;OAOG;IACH,SAAgB,YAAY,CAAC,MAAc;QACvC,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;aACnB,IAAI,CAAC,EAAE,CAAC;aACR,GAAG,CAAC,cAAM,OAAA,OAAO,CAAC,IAAA,cAAO,EAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAvC,CAAuC,CAAC;aAClD,IAAI,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IALe,4BAAY,eAK3B,CAAA;IAED;;;;;OAKG;IACH,SAAgB,IAAI,CAAC,MAA8B;QAA9B,uBAAA,EAAA,aAAiB,cAAO,EAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,gBAAA,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/B,CAAC;IAFe,oBAAI,OAEnB,CAAA;IAED;;;;;OAKG;IACU,yBAAS,GAClB,UAAC,
|
|
1
|
+
{"version":3,"file":"RandomGenerator.js","sourceRoot":"","sources":["../src/RandomGenerator.ts"],"names":[],"mappings":"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"}
|
package/lib/TestValidator.d.ts
CHANGED
|
@@ -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
|
/**
|
package/lib/TestValidator.js
CHANGED
|
@@ -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) {
|
package/lib/TestValidator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TestValidator.js","sourceRoot":"","sources":["../src/TestValidator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAwC;AAExC;;;;;;GAMG;AACH,IAAiB,aAAa,
|
|
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.
|
|
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
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
"
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
"
|
|
30
|
-
|
|
31
|
-
"@
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
47
|
-
"
|
|
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: (
|
package/src/DynamicExecutor.ts
CHANGED
|
@@ -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)(
|
|
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 (
|
|
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
|
}
|
package/src/GaffComparator.ts
CHANGED
package/src/RandomGenerator.ts
CHANGED
|
@@ -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
|
package/src/TestValidator.ts
CHANGED
|
@@ -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) =>
|