@minimaltech/node-infra 0.2.30 → 0.2.32
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/dist/helpers/testing/test-case.d.ts +5 -5
- package/dist/helpers/testing/test-case.js +24 -0
- package/dist/helpers/testing/test-case.js.map +1 -1
- package/dist/helpers/testing/test-handler.d.ts +3 -0
- package/dist/helpers/testing/test-handler.js +14 -5
- package/dist/helpers/testing/test-handler.js.map +1 -1
- package/dist/helpers/testing/test-plan/base.js +1 -1
- package/dist/helpers/testing/test-plan/base.js.map +1 -1
- package/dist/helpers/testing/types.d.ts +2 -0
- package/package.json +3 -7
@@ -2,19 +2,19 @@ import { AnyObject } from '@loopback/repository';
|
|
2
2
|
import { TestCaseHandler } from './test-handler';
|
3
3
|
import { ITestCase } from './types';
|
4
4
|
export interface ITestCaseOptions<R extends object = {}, I extends object = {}> {
|
5
|
+
code: string;
|
5
6
|
name?: string;
|
6
7
|
description: string;
|
8
|
+
expectation?: string;
|
7
9
|
handler: TestCaseHandler<R, I>;
|
8
10
|
}
|
9
11
|
export declare class TestCase<R extends object = {}, I extends object = {}> implements ITestCase<R, I> {
|
12
|
+
code: string;
|
10
13
|
name?: string;
|
11
14
|
description: string;
|
15
|
+
expectation?: string;
|
12
16
|
handler: TestCaseHandler<R, I>;
|
13
17
|
constructor(opts: ITestCaseOptions<R, I>);
|
14
|
-
static withOptions<R extends object = AnyObject, I extends object = {}>(opts:
|
15
|
-
name?: string;
|
16
|
-
description: string;
|
17
|
-
handler: TestCaseHandler<R, I>;
|
18
|
-
}): TestCase<R, I>;
|
18
|
+
static withOptions<R extends object = AnyObject, I extends object = {}>(opts: ITestCaseOptions<R, I>): TestCase<R, I>;
|
19
19
|
run(): Promise<void>;
|
20
20
|
}
|
@@ -1,10 +1,34 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
6
|
exports.TestCase = void 0;
|
7
|
+
const utilities_1 = require("../../utilities");
|
8
|
+
const get_1 = __importDefault(require("lodash/get"));
|
9
|
+
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
4
10
|
class TestCase {
|
5
11
|
constructor(opts) {
|
12
|
+
const validateFields = ['code', 'description', 'expectation'];
|
13
|
+
for (const key of validateFields) {
|
14
|
+
const value = (0, get_1.default)(opts, key, null);
|
15
|
+
if (value && !(0, isEmpty_1.default)(value)) {
|
16
|
+
continue;
|
17
|
+
}
|
18
|
+
throw (0, utilities_1.getError)({
|
19
|
+
message: `[TestCase] Invalid value for key: ${key} | value: ${value} | Opts: ${JSON.stringify(opts)}`,
|
20
|
+
});
|
21
|
+
}
|
22
|
+
this.code = opts.code;
|
6
23
|
this.name = opts.name;
|
7
24
|
this.description = opts.description;
|
25
|
+
this.expectation = opts.expectation;
|
26
|
+
if (!this.description || (0, isEmpty_1.default)(this.description)) {
|
27
|
+
throw (0, utilities_1.getError)({ message: `[TestCase][${this.code}] ` });
|
28
|
+
}
|
29
|
+
if (!this.description || (0, isEmpty_1.default)(this.description)) {
|
30
|
+
throw (0, utilities_1.getError)({ message: `[TestCase][${this.code}] ` });
|
31
|
+
}
|
8
32
|
this.handler = opts.handler;
|
9
33
|
}
|
10
34
|
static withOptions(opts) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test-case.js","sourceRoot":"","sources":["../../../src/helpers/testing/test-case.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"test-case.js","sourceRoot":"","sources":["../../../src/helpers/testing/test-case.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAuC;AAEvC,qDAA6B;AAC7B,6DAAqC;AAarC,MAAa,QAAQ;IAQnB,YAAY,IAA4B;QACtC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;QAC9D,KAAK,MAAM,GAAG,IAAI,cAAc,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAA,aAAG,EAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,KAAK,IAAI,CAAC,IAAA,iBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YAED,MAAM,IAAA,oBAAQ,EAAC;gBACb,OAAO,EAAE,qCAAqC,GAAG,aAAa,KAAK,YAAY,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;aACtG,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAEtB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAEpC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAA,oBAAQ,EAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAA,iBAAO,EAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACnD,MAAM,IAAA,oBAAQ,EAAC,EAAE,OAAO,EAAE,cAAc,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW,CAAsD,IAA4B;QAClG,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAClD,CAAC;CACF;AA9CD,4BA8CC"}
|
@@ -1,12 +1,15 @@
|
|
1
1
|
import { ValueOrPromise } from '../../common';
|
2
2
|
import { ITestCaseHandler, ITestCaseInput, ITestContext, TTestCaseDecision } from './types';
|
3
|
+
import { ApplicationLogger } from '../logger';
|
3
4
|
export interface ITestCaseHandlerOptions<R extends object, I extends ITestCaseInput = {}> {
|
5
|
+
scope?: string;
|
4
6
|
context: ITestContext<R>;
|
5
7
|
args?: I | null;
|
6
8
|
argResolver?: (...args: any[]) => I | null;
|
7
9
|
validator?: (opts: any) => ValueOrPromise<TTestCaseDecision>;
|
8
10
|
}
|
9
11
|
export declare abstract class BaseTestCaseHandler<R extends object = {}, I extends ITestCaseInput = {}> implements ITestCaseHandler<R, I> {
|
12
|
+
protected logger: ApplicationLogger;
|
10
13
|
context: ITestContext<R>;
|
11
14
|
args: I | null;
|
12
15
|
validator?: (opts: any) => ValueOrPromise<TTestCaseDecision>;
|
@@ -16,11 +16,13 @@ exports.TestCaseHandler = exports.BaseTestCaseHandler = void 0;
|
|
16
16
|
const utilities_1 = require("../../utilities");
|
17
17
|
const assert_1 = __importDefault(require("assert"));
|
18
18
|
const common_1 = require("./common");
|
19
|
+
const logger_1 = require("../logger");
|
19
20
|
class BaseTestCaseHandler {
|
20
21
|
constructor(opts) {
|
21
|
-
var _a, _b, _c;
|
22
|
+
var _a, _b, _c, _d;
|
23
|
+
this.logger = logger_1.LoggerFactory.getLogger([(_a = opts === null || opts === void 0 ? void 0 : opts.scope) !== null && _a !== void 0 ? _a : BaseTestCaseHandler.name]);
|
22
24
|
this.context = opts.context;
|
23
|
-
this.args = (
|
25
|
+
this.args = (_d = (_b = opts.args) !== null && _b !== void 0 ? _b : (_c = opts.argResolver) === null || _c === void 0 ? void 0 : _c.call(opts)) !== null && _d !== void 0 ? _d : null;
|
24
26
|
this.validator = opts === null || opts === void 0 ? void 0 : opts.validator;
|
25
27
|
}
|
26
28
|
getArguments() {
|
@@ -30,12 +32,19 @@ class BaseTestCaseHandler {
|
|
30
32
|
exports.BaseTestCaseHandler = BaseTestCaseHandler;
|
31
33
|
class TestCaseHandler extends BaseTestCaseHandler {
|
32
34
|
constructor(opts) {
|
33
|
-
|
35
|
+
var _a;
|
36
|
+
super(Object.assign(Object.assign({}, opts), { scope: (_a = opts.scope) !== null && _a !== void 0 ? _a : TestCaseHandler.name }));
|
34
37
|
}
|
35
38
|
_execute() {
|
36
39
|
return __awaiter(this, void 0, void 0, function* () {
|
37
|
-
|
38
|
-
|
40
|
+
let validateRs = common_1.TestCaseDecisions.UNKNOWN;
|
41
|
+
try {
|
42
|
+
const executeRs = yield this.execute();
|
43
|
+
validateRs = yield this.validate(executeRs);
|
44
|
+
}
|
45
|
+
catch (error) {
|
46
|
+
this.logger.error('[_execute] Failed to execute test handler | Error: %s', error);
|
47
|
+
}
|
39
48
|
assert_1.default.equal(validateRs, common_1.TestCaseDecisions.SUCCESS);
|
40
49
|
});
|
41
50
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"test-handler.js","sourceRoot":"","sources":["../../../src/helpers/testing/test-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAuC;AACvC,oDAA4B;AAC5B,qCAA6C;
|
1
|
+
{"version":3,"file":"test-handler.js","sourceRoot":"","sources":["../../../src/helpers/testing/test-handler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAAuC;AACvC,oDAA4B;AAC5B,qCAA6C;AAE7C,sCAA6D;AAY7D,MAAsB,mBAAmB;IAUvC,YAAY,IAAmC;;QAC7C,IAAI,CAAC,MAAM,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,mCAAI,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAEjF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,GAAG,MAAA,MAAA,IAAI,CAAC,IAAI,mCAAI,MAAA,IAAI,CAAC,WAAW,oDAAI,mCAAI,IAAI,CAAC;QACtD,IAAI,CAAC,SAAS,GAAG,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,CAAC;IACnC,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;CAQF;AA5BD,kDA4BC;AAED,MAAsB,eAAsE,SAAQ,mBAGnG;IACC,YAAY,IAAmC;;QAC7C,KAAK,iCACA,IAAI,KACP,KAAK,EAAE,MAAA,IAAI,CAAC,KAAK,mCAAI,eAAe,CAAC,IAAI,IACzC,CAAC;IACL,CAAC;IAEK,QAAQ;;YACZ,IAAI,UAAU,GAAG,0BAAiB,CAAC,OAAO,CAAC;YAE3C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACvC,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9C,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uDAAuD,EAAE,KAAK,CAAC,CAAC;YACpF,CAAC;YAED,gBAAM,CAAC,KAAK,CAAC,UAAU,EAAE,0BAAiB,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;KAAA;IAED,QAAQ,CAAC,IAAS;;QAChB,MAAM,SAAS,GAAG,MAAA,IAAI,CAAC,SAAS,mCAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QAExD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAA,oBAAQ,EAAC;gBACb,OAAO,EAAE,yCAAyC;aACnD,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAA,SAAS,CAAC,IAAI,CAAC,mCAAI,0BAAiB,CAAC,OAAO,CAAC;IACtD,CAAC;CACF;AAnCD,0CAmCC"}
|
@@ -56,7 +56,7 @@ class BaseTestPlan {
|
|
56
56
|
}
|
57
57
|
for (const testCase of this.testCases) {
|
58
58
|
try {
|
59
|
-
it(`RUN Test Case | Description: ${testCase.name ? `${testCase.name} - ` : ''}${testCase.description}`, () => {
|
59
|
+
it(`RUN Test Case | Code: ${testCase.code} | Description: ${testCase.name ? `${testCase.name} - ` : ''}${testCase.description} | Expect: ${testCase.expectation}`, () => {
|
60
60
|
return testCase.run();
|
61
61
|
});
|
62
62
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/helpers/testing/test-plan/base.ts"],"names":[],"mappings":";;;AACA,2CAAkE;AAClE,6CAAoD;AAEpD,MAAsB,YAAY;IAQhC,YAAY,IAAyB;;QACnC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,MAAM,GAAG,sBAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,2BAAiB,CAAC,WAAW,EAAE,CAAC;QAEhD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,mCAAI,EAAE,CAAC;QAE9B,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QAEpB,IAAI,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,mCAAI,EAAE,CAAC;YACtE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,aAAa,CAAC,IAAwC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,OAAO,CAAC,IAAkC;;QACxC,OAAO,MAAA,MAAA,IAAI,CAAC,KAAK,0CAAG,IAAI,CAAC,GAAG,CAAC,mCAAI,IAAI,CAAC;IACxC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAI,IAA+B;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,QAAQ,CAAC,GAAG,CAAI,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAI,IAAsB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,QAAQ,CAAC,GAAG,CAAI,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sDAAsD,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAEhG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;YACjD,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,EAAE,CAAC,
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../../../src/helpers/testing/test-plan/base.ts"],"names":[],"mappings":"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"}
|
@@ -20,8 +20,10 @@ export interface ITestCaseHandler<R extends object = {}, I extends object = {}>
|
|
20
20
|
validator?: (args: AnyObject) => ValueOrPromise<TTestCaseDecision>;
|
21
21
|
}
|
22
22
|
export interface ITestCase<R extends object = {}, I extends object = {}> {
|
23
|
+
code: string;
|
23
24
|
name?: string;
|
24
25
|
description: string;
|
26
|
+
expectation?: string;
|
25
27
|
handler: ITestCaseHandler<R, I>;
|
26
28
|
run: () => ValueOrPromise<void>;
|
27
29
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@minimaltech/node-infra",
|
3
|
-
"version": "0.2.
|
3
|
+
"version": "0.2.32",
|
4
4
|
"description": "NodeJS Infrastructure - Loopback 4 Framework",
|
5
5
|
"keywords": [
|
6
6
|
"web",
|
@@ -86,20 +86,16 @@
|
|
86
86
|
"winston-daily-rotate-file": "^5.0.0"
|
87
87
|
},
|
88
88
|
"devDependencies": {
|
89
|
-
"@eslint/eslintrc": "^3.1.0",
|
90
|
-
"@eslint/js": "^9.9.1",
|
91
89
|
"@loopback/build": "^11.0.3",
|
92
|
-
"@loopback/eslint-config": "^15.0.3",
|
93
90
|
"@loopback/testlab": "^7.0.3",
|
94
|
-
"@minimaltech/eslint-node": "^0.
|
91
|
+
"@minimaltech/eslint-node": "^0.1.14",
|
95
92
|
"@types/express": "^4.17.21",
|
96
93
|
"@types/jsonwebtoken": "^9.0.6",
|
97
94
|
"@types/lodash": "^4.17.7",
|
98
95
|
"@types/mocha": "^10.0.7",
|
99
96
|
"@types/multer": "^1.4.7",
|
100
97
|
"@types/node": "^20.16.2",
|
101
|
-
"eslint": "8.57.0",
|
102
|
-
"eslint-plugin-prettier": "^5.1.3",
|
98
|
+
"eslint": "^8.57.0",
|
103
99
|
"prettier": "^3.3.2",
|
104
100
|
"source-map-support": "^0.5.21",
|
105
101
|
"ts-node": "^10.9.1",
|