@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.
@@ -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":";;;AAWA,MAAa,QAAQ;IAKnB,YAAY,IAA4B;QACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,WAAW,CAAsD,IAIvE;QACC,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;AAtBD,4BAsBC"}
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 = (_c = (_a = opts.args) !== null && _a !== void 0 ? _a : (_b = opts.argResolver) === null || _b === void 0 ? void 0 : _b.call(opts)) !== null && _c !== void 0 ? _c : null;
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
- super(opts);
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
- const executeRs = yield this.execute();
38
- const validateRs = yield this.validate(executeRs);
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;AAY7C,MAAsB,mBAAmB;IAQvC,YAAY,IAAmC;;QAC7C,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;AAxBD,kDAwBC;AAED,MAAsB,eAAsE,SAAQ,mBAGnG;IACC,YAAY,IAAmC;QAC7C,KAAK,CAAC,IAAI,CAAC,CAAC;IACd,CAAC;IAEK,QAAQ;;YACZ,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAClD,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;AAzBD,0CAyBC"}
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,gCAAgC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE;oBAC3G,OAAO,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACxB,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,6CAA6C,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAlFD,oCAkFC"}
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.30",
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.0.11",
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",