@nestia/e2e 0.2.2 → 0.3.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.
- package/README.md +59 -95
- package/lib/DynamicExecutor.d.ts +6 -0
- package/lib/DynamicExecutor.js +63 -61
- package/lib/DynamicExecutor.js.map +1 -1
- package/lib/RandomGenerator.d.ts +1 -1
- package/lib/RandomGenerator.js +2 -2
- package/lib/RandomGenerator.js.map +1 -1
- package/package.json +2 -2
- package/src/DynamicExecutor.ts +32 -19
- package/src/RandomGenerator.ts +2 -2
package/README.md
CHANGED
|
@@ -1,96 +1,60 @@
|
|
|
1
|
-
# Nestia
|
|
1
|
+
# Nestia
|
|
2
|
+

|
|
3
|
+
|
|
2
4
|
[](https://github.com/samchon/nestia/blob/master/LICENSE)
|
|
3
|
-
[
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
validator("updated_at")(GaffComparator.dates((x) => x.updated_at)),
|
|
60
|
-
validator("title")(GaffComparator.strings((x) => x.title)),
|
|
61
|
-
validator("writer")(GaffComparator.strings((x) => x.writer)),
|
|
62
|
-
validator(
|
|
63
|
-
"writer",
|
|
64
|
-
"title",
|
|
65
|
-
)(GaffComparator.strings((x) => [x.writer, x.title])),
|
|
66
|
-
];
|
|
67
|
-
for (const comp of components) {
|
|
68
|
-
await comp("+", false);
|
|
69
|
-
await comp("-", false);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
## Setup
|
|
78
|
-
```bash
|
|
79
|
-
npm install --save-dev @nestia/e2e
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
Just setup with npm command, that's all.
|
|
83
|
-
|
|
84
|
-
For referece, due to test program would not be published, I rcommend to install as `dev` mode.
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
## Features
|
|
90
|
-
About supported features, read descriptive comments of below:
|
|
91
|
-
|
|
92
|
-
- [`ArrayUtil`](https://github.com/samchon/nestia/tree/master/packages/e2e/src/ArrayUtil.ts)
|
|
93
|
-
- [`GaffComparator`](https://github.com/samchon/nestia/tree/master/packages/e2e/src/GaffComparator.ts)
|
|
94
|
-
- [`RandomGenerator`](https://github.com/samchon/nestia/tree/master/packages/e2e/src/RandomGenerator.ts)
|
|
95
|
-
- [`StopWatch`](https://github.com/samchon/nestia/tree/master/packages/e2e/src/StopWatch.ts)
|
|
96
|
-
- [`TestValidator`](https://github.com/samchon/nestia/tree/master/packages/e2e/src/TestValidator.ts)
|
|
5
|
+
[](https://www.npmjs.com/package/@nestia/core)
|
|
6
|
+
[](https://www.npmjs.com/package/nestia)
|
|
7
|
+
[](https://github.com/samchon/nestia/actions?query=workflow%3Abuild)
|
|
8
|
+
[](https://nestia.io/docs/)
|
|
9
|
+
|
|
10
|
+
Nestia is a set of helper libraries for NestJS, supporting below features:
|
|
11
|
+
|
|
12
|
+
- `@nestia/core`: super-fast decorators
|
|
13
|
+
- `@nestia/sdk`:
|
|
14
|
+
- SDK generator for clients
|
|
15
|
+
- Swagger generator evolved than ever
|
|
16
|
+
- Automatic E2E test functions generator
|
|
17
|
+
- `nestia`: just CLI (command line interface) tool
|
|
18
|
+
|
|
19
|
+
> **Note**
|
|
20
|
+
>
|
|
21
|
+
> - **Only one line** required, with pure TypeScript type
|
|
22
|
+
> - Runtime validator is **20,000x faster** than `class-validator`
|
|
23
|
+
> - JSON serialization is **200x faster** than `class-transformer`
|
|
24
|
+
> - SDK is similar with [tRPC](https://trpc.io), but much advanced
|
|
25
|
+
|
|
26
|
+

|
|
27
|
+
|
|
28
|
+
> Left is server code, and right is client code utilizing SDK
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
## Sponsors and Backers
|
|
34
|
+
Thanks for your support.
|
|
35
|
+
|
|
36
|
+
Your donation would encourage `nestia` development.
|
|
37
|
+
|
|
38
|
+
[](https://opencollective.com/nestia)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
## Guide Documents
|
|
44
|
+
Check out the document in the [website](https://nestia.io/docs/):
|
|
45
|
+
|
|
46
|
+
### 🏠 Home
|
|
47
|
+
- [Introduction](https://nestia.io/docs/)
|
|
48
|
+
- [Setup](https://nestia.io/docs/setup/)
|
|
49
|
+
|
|
50
|
+
### 📖 Features
|
|
51
|
+
- [Pure TypeScript](https://nestia.io/docs/pure)
|
|
52
|
+
- Core Library
|
|
53
|
+
- [TypedRoute](https://nestia.io/docs/core/TypedRoute/)
|
|
54
|
+
- [TypedBody](https://nestia.io/docs/core/TypedBody/)
|
|
55
|
+
- [TypedParam](https://nestia.io/docs/core/TypedParam/)
|
|
56
|
+
- [TypedQuery](https://nestia.io/docs/core/TypedRoute/)
|
|
57
|
+
- Generators
|
|
58
|
+
- [Swagger Documents](https://nestia.io/docs/sdk/swagger/)
|
|
59
|
+
- [SDK Library](https://nestia.io/docs/sdk/sdk/)
|
|
60
|
+
- [E2E Functions](https://nestia.io/docs/sdk/e2e/)
|
package/lib/DynamicExecutor.d.ts
CHANGED
package/lib/DynamicExecutor.js
CHANGED
|
@@ -164,8 +164,9 @@ var DynamicExecutor;
|
|
|
164
164
|
return function (assert) {
|
|
165
165
|
return function (path) { return __awaiter(_this, void 0, void 0, function () {
|
|
166
166
|
var report, executor, iterator;
|
|
167
|
-
|
|
168
|
-
|
|
167
|
+
var _a;
|
|
168
|
+
return __generator(this, function (_b) {
|
|
169
|
+
switch (_b.label) {
|
|
169
170
|
case 0:
|
|
170
171
|
report = {
|
|
171
172
|
location: path,
|
|
@@ -173,10 +174,10 @@ var DynamicExecutor;
|
|
|
173
174
|
executions: [],
|
|
174
175
|
};
|
|
175
176
|
executor = execute(options)(report)(assert);
|
|
176
|
-
iterator = iterate(executor);
|
|
177
|
+
iterator = iterate((_a = options.extension) !== null && _a !== void 0 ? _a : "js")(executor);
|
|
177
178
|
return [4 /*yield*/, iterator(path)];
|
|
178
179
|
case 1:
|
|
179
|
-
|
|
180
|
+
_b.sent();
|
|
180
181
|
report.time = Date.now() - report.time;
|
|
181
182
|
return [2 /*return*/, report];
|
|
182
183
|
}
|
|
@@ -184,63 +185,65 @@ var DynamicExecutor;
|
|
|
184
185
|
}); };
|
|
185
186
|
};
|
|
186
187
|
};
|
|
187
|
-
var iterate = function (
|
|
188
|
-
|
|
189
|
-
var
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
case 6:
|
|
215
|
-
if (file.substr(-3) !== ".".concat(EXTENSION))
|
|
188
|
+
var iterate = function (extension) {
|
|
189
|
+
return function (executor) {
|
|
190
|
+
var visitor = function (path) { return __awaiter(_this, void 0, void 0, function () {
|
|
191
|
+
var directory, directory_1, directory_1_1, file, location_1, stats, modulo, e_1_1;
|
|
192
|
+
var e_1, _a;
|
|
193
|
+
return __generator(this, function (_b) {
|
|
194
|
+
var _c;
|
|
195
|
+
switch (_b.label) {
|
|
196
|
+
case 0: return [4 /*yield*/, fs_1.default.promises.readdir(path)];
|
|
197
|
+
case 1:
|
|
198
|
+
directory = _b.sent();
|
|
199
|
+
_b.label = 2;
|
|
200
|
+
case 2:
|
|
201
|
+
_b.trys.push([2, 12, 13, 14]);
|
|
202
|
+
directory_1 = __values(directory), directory_1_1 = directory_1.next();
|
|
203
|
+
_b.label = 3;
|
|
204
|
+
case 3:
|
|
205
|
+
if (!!directory_1_1.done) return [3 /*break*/, 11];
|
|
206
|
+
file = directory_1_1.value;
|
|
207
|
+
location_1 = path_1.default.resolve("".concat(path, "/").concat(file));
|
|
208
|
+
return [4 /*yield*/, fs_1.default.promises.lstat(location_1)];
|
|
209
|
+
case 4:
|
|
210
|
+
stats = _b.sent();
|
|
211
|
+
if (!(stats.isDirectory() === true)) return [3 /*break*/, 6];
|
|
212
|
+
return [4 /*yield*/, visitor(location_1)];
|
|
213
|
+
case 5:
|
|
214
|
+
_b.sent();
|
|
216
215
|
return [3 /*break*/, 10];
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
return [4 /*yield*/,
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
216
|
+
case 6:
|
|
217
|
+
if (file.substr(-3) !== ".".concat(extension))
|
|
218
|
+
return [3 /*break*/, 10];
|
|
219
|
+
_b.label = 7;
|
|
220
|
+
case 7: return [4 /*yield*/, (_c = location_1, Promise.resolve().then(function () { return __importStar(require(_c)); }))];
|
|
221
|
+
case 8:
|
|
222
|
+
modulo = _b.sent();
|
|
223
|
+
return [4 /*yield*/, executor(location_1, modulo)];
|
|
224
|
+
case 9:
|
|
225
|
+
_b.sent();
|
|
226
|
+
_b.label = 10;
|
|
227
|
+
case 10:
|
|
228
|
+
directory_1_1 = directory_1.next();
|
|
229
|
+
return [3 /*break*/, 3];
|
|
230
|
+
case 11: return [3 /*break*/, 14];
|
|
231
|
+
case 12:
|
|
232
|
+
e_1_1 = _b.sent();
|
|
233
|
+
e_1 = { error: e_1_1 };
|
|
234
|
+
return [3 /*break*/, 14];
|
|
235
|
+
case 13:
|
|
236
|
+
try {
|
|
237
|
+
if (directory_1_1 && !directory_1_1.done && (_a = directory_1.return)) _a.call(directory_1);
|
|
238
|
+
}
|
|
239
|
+
finally { if (e_1) throw e_1.error; }
|
|
240
|
+
return [7 /*endfinally*/];
|
|
241
|
+
case 14: return [2 /*return*/];
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}); };
|
|
245
|
+
return visitor;
|
|
246
|
+
};
|
|
244
247
|
};
|
|
245
248
|
var execute = function (options) {
|
|
246
249
|
return function (report) {
|
|
@@ -347,6 +350,5 @@ var DynamicExecutor;
|
|
|
347
350
|
};
|
|
348
351
|
};
|
|
349
352
|
};
|
|
350
|
-
var EXTENSION = __filename.substring(__filename.length - 2);
|
|
351
353
|
})(DynamicExecutor = exports.DynamicExecutor || (exports.DynamicExecutor = {}));
|
|
352
354
|
//# sourceMappingURL=DynamicExecutor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DynamicExecutor.js","sourceRoot":"","sources":["../src/DynamicExecutor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAC1B,0CAAoB;AACpB,8CAA4B;AAE5B,yCAAwC;AAExC;;;;;;;;;;;;GAYG;AACH,IAAiB,eAAe,
|
|
1
|
+
{"version":3,"file":"DynamicExecutor.js","sourceRoot":"","sources":["../src/DynamicExecutor.ts"],"names":[],"mappings":"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"}
|
package/lib/RandomGenerator.d.ts
CHANGED
package/lib/RandomGenerator.js
CHANGED
|
@@ -122,7 +122,7 @@ var RandomGenerator;
|
|
|
122
122
|
*
|
|
123
123
|
* @param prefix Prefix string, default is "010"
|
|
124
124
|
* @returns Random mobile number
|
|
125
|
-
* @example
|
|
125
|
+
* @example 0103340067
|
|
126
126
|
*/
|
|
127
127
|
RandomGenerator.mobile = function (prefix) {
|
|
128
128
|
if (prefix === void 0) { prefix = "010"; }
|
|
@@ -133,7 +133,7 @@ var RandomGenerator;
|
|
|
133
133
|
return value.toString().padStart(value < 1000 ? 3 : 4, "0");
|
|
134
134
|
})(),
|
|
135
135
|
(0, tstl_1.randint)(0, 9999).toString().padStart(4, "0"),
|
|
136
|
-
].join("
|
|
136
|
+
].join("");
|
|
137
137
|
};
|
|
138
138
|
/**
|
|
139
139
|
* Generate random date.
|
|
@@ -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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nestia/e2e",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "E2E test utilify functions",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"bugs": {
|
|
29
29
|
"url": "https://github.com/samchon/nestia/issues"
|
|
30
30
|
},
|
|
31
|
-
"homepage": "https://
|
|
31
|
+
"homepage": "https://nestia.io",
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@trivago/prettier-plugin-sort-imports": "^4.0.0",
|
|
34
34
|
"@types/cli": "^0.11.21",
|
package/src/DynamicExecutor.ts
CHANGED
|
@@ -79,6 +79,13 @@ export namespace DynamicExecutor {
|
|
|
79
79
|
* @default true
|
|
80
80
|
*/
|
|
81
81
|
showElapsedTime?: boolean;
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Extension of dynamic functions.
|
|
85
|
+
*
|
|
86
|
+
* @default js
|
|
87
|
+
*/
|
|
88
|
+
extension?: string;
|
|
82
89
|
}
|
|
83
90
|
|
|
84
91
|
/**
|
|
@@ -179,33 +186,40 @@ export namespace DynamicExecutor {
|
|
|
179
186
|
};
|
|
180
187
|
|
|
181
188
|
const executor = execute(options)(report)(assert);
|
|
182
|
-
const iterator = iterate(executor);
|
|
189
|
+
const iterator = iterate(options.extension ?? "js")(executor);
|
|
183
190
|
await iterator(path);
|
|
184
191
|
|
|
185
192
|
report.time = Date.now() - report.time;
|
|
186
193
|
return report;
|
|
187
194
|
};
|
|
188
195
|
|
|
189
|
-
const iterate =
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
196
|
+
const iterate =
|
|
197
|
+
(extension: string) =>
|
|
198
|
+
<Arguments extends any[]>(
|
|
199
|
+
executor: (
|
|
200
|
+
path: string,
|
|
201
|
+
modulo: Module<Arguments>,
|
|
202
|
+
) => Promise<void>,
|
|
203
|
+
) => {
|
|
204
|
+
const visitor = async (path: string): Promise<void> => {
|
|
205
|
+
const directory: string[] = await fs.promises.readdir(path);
|
|
206
|
+
for (const file of directory) {
|
|
207
|
+
const location: string = NodePath.resolve(
|
|
208
|
+
`${path}/${file}`,
|
|
209
|
+
);
|
|
210
|
+
const stats: fs.Stats = await fs.promises.lstat(location);
|
|
197
211
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
212
|
+
if (stats.isDirectory() === true) {
|
|
213
|
+
await visitor(location);
|
|
214
|
+
continue;
|
|
215
|
+
} else if (file.substr(-3) !== `.${extension}`) continue;
|
|
202
216
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
217
|
+
const modulo: Module<Arguments> = await import(location);
|
|
218
|
+
await executor(location, modulo);
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
return visitor;
|
|
206
222
|
};
|
|
207
|
-
return visitor;
|
|
208
|
-
};
|
|
209
223
|
|
|
210
224
|
const execute =
|
|
211
225
|
<Arguments extends any[]>(options: IOptions<Arguments>) =>
|
|
@@ -263,5 +277,4 @@ export namespace DynamicExecutor {
|
|
|
263
277
|
interface Module<Arguments extends any[]> {
|
|
264
278
|
[key: string]: Closure<Arguments>;
|
|
265
279
|
}
|
|
266
|
-
const EXTENSION: string = __filename.substring(__filename.length - 2);
|
|
267
280
|
}
|
package/src/RandomGenerator.ts
CHANGED
|
@@ -115,7 +115,7 @@ export namespace RandomGenerator {
|
|
|
115
115
|
*
|
|
116
116
|
* @param prefix Prefix string, default is "010"
|
|
117
117
|
* @returns Random mobile number
|
|
118
|
-
* @example
|
|
118
|
+
* @example 0103340067
|
|
119
119
|
*/
|
|
120
120
|
export const mobile = (prefix: string = "010"): string =>
|
|
121
121
|
[
|
|
@@ -125,7 +125,7 @@ export namespace RandomGenerator {
|
|
|
125
125
|
return value.toString().padStart(value < 1_000 ? 3 : 4, "0");
|
|
126
126
|
})(),
|
|
127
127
|
randint(0, 9999).toString().padStart(4, "0"),
|
|
128
|
-
].join("
|
|
128
|
+
].join("");
|
|
129
129
|
|
|
130
130
|
/**
|
|
131
131
|
* Generate random date.
|