zation-assured 0.5.1 → 3.0.0-dev.1

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.
Files changed (151) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +55 -2
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +3 -9
  5. package/dist/lib/api/assert.d.ts +16 -9
  6. package/dist/lib/api/assert.js +16 -12
  7. package/dist/lib/api/testHelper.d.ts +0 -8
  8. package/dist/lib/api/testHelper.js +6 -83
  9. package/dist/lib/api/when.d.ts +41 -45
  10. package/dist/lib/api/when.js +42 -55
  11. package/dist/lib/helper/asserter/abstractActionAsserter.d.ts +68 -0
  12. package/dist/lib/helper/asserter/{rootSendAsserter.js → abstractActionAsserter.js} +23 -67
  13. package/dist/lib/helper/asserter/assertStarter.d.ts +5 -0
  14. package/dist/lib/helper/asserter/assertStarter.js +16 -0
  15. package/dist/lib/helper/asserter/channel/abstractChannelAsserter.d.ts +24 -33
  16. package/dist/lib/helper/asserter/channel/abstractChannelAsserter.js +48 -89
  17. package/dist/lib/helper/asserter/channel/channelAsserter.d.ts +3 -3
  18. package/dist/lib/helper/asserter/channel/channelAsserter.js +2 -2
  19. package/dist/lib/helper/asserter/channel/standaloneChannelAsserter.d.ts +5 -5
  20. package/dist/lib/helper/asserter/channel/standaloneChannelAsserter.js +6 -6
  21. package/dist/lib/helper/asserter/client/abstractClientAsserter.d.ts +29 -47
  22. package/dist/lib/helper/asserter/client/abstractClientAsserter.js +91 -193
  23. package/dist/lib/helper/asserter/client/clientAsserter.d.ts +3 -3
  24. package/dist/lib/helper/asserter/client/clientAsserter.js +2 -2
  25. package/dist/lib/helper/asserter/client/standaloneClientAsserter.d.ts +5 -5
  26. package/dist/lib/helper/asserter/client/standaloneClientAsserter.js +6 -6
  27. package/dist/lib/helper/asserter/controller/integratedResponseAsserter.d.ts +52 -0
  28. package/dist/lib/helper/asserter/controller/integratedResponseAsserter.js +112 -0
  29. package/dist/lib/helper/asserter/controller/standaloneResponseAsserter.d.ts +49 -0
  30. package/dist/lib/helper/asserter/controller/standaloneResponseAsserter.js +108 -0
  31. package/dist/lib/helper/asserter/databox/abstractDataboxAsserter.d.ts +33 -40
  32. package/dist/lib/helper/asserter/databox/abstractDataboxAsserter.js +48 -84
  33. package/dist/lib/helper/asserter/databox/databoxAsserter.d.ts +3 -3
  34. package/dist/lib/helper/asserter/databox/databoxAsserter.js +2 -2
  35. package/dist/lib/helper/asserter/databox/standaloneDataboxAsserter.d.ts +6 -5
  36. package/dist/lib/helper/asserter/databox/standaloneDataboxAsserter.js +6 -6
  37. package/dist/lib/helper/asserter/event/abstractEventAsserter.d.ts +12 -4
  38. package/dist/lib/helper/asserter/event/abstractEventAsserter.js +25 -10
  39. package/dist/lib/helper/asserter/event/codeMetadataEventAsserter.d.ts +21 -0
  40. package/dist/lib/helper/asserter/event/codeMetadataEventAsserter.js +47 -0
  41. package/dist/lib/helper/asserter/event/dataEventAsserter.d.ts +13 -3
  42. package/dist/lib/helper/asserter/event/dataEventAsserter.js +22 -4
  43. package/dist/lib/helper/asserter/receiver/integratedTransmitAsserter.d.ts +9 -0
  44. package/dist/lib/helper/asserter/receiver/{transmitAsserter.js → integratedTransmitAsserter.js} +9 -9
  45. package/dist/lib/helper/asserter/value/abstractValueAsserter.d.ts +10 -12
  46. package/dist/lib/helper/asserter/value/abstractValueAsserter.js +46 -50
  47. package/dist/lib/helper/asserter/value/standaloneValueAsserter.d.ts +3 -3
  48. package/dist/lib/helper/asserter/value/standaloneValueAsserter.js +6 -6
  49. package/dist/lib/helper/asserter/value/valueAsserter.d.ts +4 -4
  50. package/dist/lib/helper/asserter/value/valueAsserter.js +4 -4
  51. package/dist/lib/helper/backError/backErrorsFilterBuilder.d.ts +12 -0
  52. package/dist/lib/helper/backError/backErrorsFilterBuilder.js +29 -0
  53. package/dist/lib/helper/console/logger.js +2 -2
  54. package/dist/lib/helper/definitions/optionTypes.d.ts +8 -0
  55. package/dist/lib/helper/definitions/optionTypes.js +7 -0
  56. package/dist/lib/helper/test/test.d.ts +2 -2
  57. package/dist/lib/helper/test/test.js +8 -6
  58. package/dist/lib/helper/timeout/timeoutAssert.js +2 -2
  59. package/dist/lib/helper/utils/actionUtils.d.ts +5 -18
  60. package/dist/lib/helper/utils/actionUtils.js +14 -43
  61. package/dist/lib/helper/utils/types.d.ts +20 -0
  62. package/dist/lib/helper/utils/types.js +7 -0
  63. package/package.json +8 -10
  64. package/dist/lib/api/before.d.ts +0 -3
  65. package/dist/lib/api/before.js +0 -20
  66. package/dist/lib/api/client.d.ts +0 -3
  67. package/dist/lib/api/client.js +0 -11
  68. package/dist/lib/api/describe.d.ts +0 -1
  69. package/dist/lib/api/describe.js +0 -6
  70. package/dist/lib/api/instanceManager.d.ts +0 -8
  71. package/dist/lib/api/instanceManager.js +0 -48
  72. package/dist/lib/api/testArea.d.ts +0 -3
  73. package/dist/lib/api/testArea.js +0 -41
  74. package/dist/lib/api/testServerManager.d.ts +0 -19
  75. package/dist/lib/api/testServerManager.js +0 -100
  76. package/dist/lib/helper/asserter/abstractClientAsserter.d.ts +0 -102
  77. package/dist/lib/helper/asserter/abstractClientAsserter.js +0 -293
  78. package/dist/lib/helper/asserter/anyAsserter.d.ts +0 -62
  79. package/dist/lib/helper/asserter/anyAsserter.js +0 -130
  80. package/dist/lib/helper/asserter/channelEventAsserter.d.ts +0 -34
  81. package/dist/lib/helper/asserter/channelEventAsserter.js +0 -84
  82. package/dist/lib/helper/asserter/channelPubAsserter.d.ts +0 -53
  83. package/dist/lib/helper/asserter/channelPubAsserter.js +0 -126
  84. package/dist/lib/helper/asserter/clientAsserter.d.ts +0 -13
  85. package/dist/lib/helper/asserter/clientAsserter.js +0 -26
  86. package/dist/lib/helper/asserter/controller/responseAsserter.d.ts +0 -76
  87. package/dist/lib/helper/asserter/controller/responseAsserter.js +0 -154
  88. package/dist/lib/helper/asserter/dataEventAsserter.d.ts +0 -40
  89. package/dist/lib/helper/asserter/dataEventAsserter.js +0 -113
  90. package/dist/lib/helper/asserter/event/abstractDataEventAsserter.d.ts +0 -13
  91. package/dist/lib/helper/asserter/event/abstractDataEventAsserter.js +0 -36
  92. package/dist/lib/helper/asserter/event/codeDataEventAsserter.d.ts +0 -14
  93. package/dist/lib/helper/asserter/event/codeDataEventAsserter.js +0 -40
  94. package/dist/lib/helper/asserter/eventAsserter.d.ts +0 -41
  95. package/dist/lib/helper/asserter/eventAsserter.js +0 -115
  96. package/dist/lib/helper/asserter/objectAsserter.d.ts +0 -55
  97. package/dist/lib/helper/asserter/objectAsserter.js +0 -113
  98. package/dist/lib/helper/asserter/receiver/transmitAsserter.d.ts +0 -9
  99. package/dist/lib/helper/asserter/responseAsserter.d.ts +0 -129
  100. package/dist/lib/helper/asserter/responseAsserter.js +0 -260
  101. package/dist/lib/helper/asserter/rootSendAsserter.d.ts +0 -89
  102. package/dist/lib/helper/asserter/standaloneClientAsserter.d.ts +0 -11
  103. package/dist/lib/helper/asserter/standaloneClientAsserter.js +0 -38
  104. package/dist/lib/helper/assured/clientAssured.d.ts +0 -2
  105. package/dist/lib/helper/assured/clientAssured.js +0 -11
  106. package/dist/lib/helper/assured/responseAssured.d.ts +0 -17
  107. package/dist/lib/helper/assured/responseAssured.js +0 -72
  108. package/dist/lib/helper/backError/backErrorFilterBuilder.d.ts +0 -13
  109. package/dist/lib/helper/backError/backErrorFilterBuilder.js +0 -35
  110. package/dist/lib/helper/builder/controller/abstractRequestBuilder.d.ts +0 -53
  111. package/dist/lib/helper/builder/controller/abstractRequestBuilder.js +0 -69
  112. package/dist/lib/helper/builder/controller/authRequestBuilder.d.ts +0 -15
  113. package/dist/lib/helper/builder/controller/authRequestBuilder.js +0 -30
  114. package/dist/lib/helper/builder/controller/standardRequestBuilder.d.ts +0 -15
  115. package/dist/lib/helper/builder/controller/standardRequestBuilder.js +0 -30
  116. package/dist/lib/helper/builder/controller/validationCheckRequestBuilder.d.ts +0 -21
  117. package/dist/lib/helper/builder/controller/validationCheckRequestBuilder.js +0 -40
  118. package/dist/lib/helper/builder/receiver/packageBuilder.d.ts +0 -45
  119. package/dist/lib/helper/builder/receiver/packageBuilder.js +0 -67
  120. package/dist/lib/helper/controller/request/abstractRequestBuilder.d.ts +0 -53
  121. package/dist/lib/helper/controller/request/abstractRequestBuilder.js +0 -68
  122. package/dist/lib/helper/controller/request/authRequestBuilder.d.ts +0 -15
  123. package/dist/lib/helper/controller/request/authRequestBuilder.js +0 -29
  124. package/dist/lib/helper/controller/request/standardRequestBuilder.d.ts +0 -15
  125. package/dist/lib/helper/controller/request/standardRequestBuilder.js +0 -29
  126. package/dist/lib/helper/controller/request/validationCheckRequestBuilder.d.ts +0 -21
  127. package/dist/lib/helper/controller/request/validationCheckRequestBuilder.js +0 -39
  128. package/dist/lib/helper/data/test.d.ts +0 -13
  129. package/dist/lib/helper/data/test.js +0 -89
  130. package/dist/lib/helper/do/actionUtils.d.ts +0 -24
  131. package/dist/lib/helper/do/actionUtils.js +0 -70
  132. package/dist/lib/helper/do/doUtils.d.ts +0 -24
  133. package/dist/lib/helper/do/doUtils.js +0 -80
  134. package/dist/lib/helper/error/backErrorFilterBuilder.d.ts +0 -13
  135. package/dist/lib/helper/error/backErrorFilterBuilder.js +0 -34
  136. package/dist/lib/helper/error/taskErrorFilterBuilder.d.ts +0 -13
  137. package/dist/lib/helper/error/taskErrorFilterBuilder.js +0 -34
  138. package/dist/lib/helper/request/abstractRequestBuilder.d.ts +0 -53
  139. package/dist/lib/helper/request/abstractRequestBuilder.js +0 -68
  140. package/dist/lib/helper/request/authRequestBuilder.d.ts +0 -15
  141. package/dist/lib/helper/request/authRequestBuilder.js +0 -29
  142. package/dist/lib/helper/request/requestBuilder.d.ts +0 -46
  143. package/dist/lib/helper/request/requestBuilder.js +0 -76
  144. package/dist/lib/helper/request/standardRequestBuilder.d.ts +0 -15
  145. package/dist/lib/helper/request/standardRequestBuilder.js +0 -29
  146. package/dist/lib/helper/request/validationCheckRequestBuilder.d.ts +0 -21
  147. package/dist/lib/helper/request/validationCheckRequestBuilder.js +0 -39
  148. package/dist/lib/helper/request/validationRequestBuilder.d.ts +0 -35
  149. package/dist/lib/helper/request/validationRequestBuilder.js +0 -61
  150. package/dist/lib/helper/utils/clientUtils.d.ts +0 -4
  151. package/dist/lib/helper/utils/clientUtils.js +0 -29
@@ -0,0 +1,20 @@
1
+ import { Channel, Client, Databox, Response } from "zation-client";
2
+ export declare type ClientAPI<T extends Client<any, any>> = T extends Client<infer API, any> ? API : never;
3
+ export declare type ClientTokenPayload<T extends Client<any, any>> = T extends Client<any, infer TP> ? TP : never;
4
+ export declare type ResponseData<T extends Response<any>> = T extends Response<infer D> ? D : never;
5
+ export declare type DataboxData<T extends Databox<any, any, any, any>> = T extends Databox<infer D, any, any, any> ? D : never;
6
+ export declare type DataboxMember<T extends Databox<any, any, any, any>> = T extends Databox<any, infer M, any, any> ? M : never;
7
+ export declare type DataboxFetchData<T extends Databox<any, any, any, any>> = T extends Databox<any, any, any, infer F> ? F : never;
8
+ export declare type ChannelMember<T extends Channel<any, any>> = T extends Channel<infer M, any> ? M : never;
9
+ export declare type ChannelEvents<T extends Channel<any, any>> = T extends Channel<any, infer E> ? E : never;
10
+ export declare type Primitive = undefined | null | boolean | string | number | Function;
11
+ export declare type DeepReadonly<T> = T extends Primitive ? T : T extends Array<infer U> ? DeepReadonlyArray<U> : T extends Map<infer K, infer V> ? DeepReadonlyMap<K, V> : DeepReadonlyObject<T>;
12
+ interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {
13
+ }
14
+ interface DeepReadonlyMap<K, V> extends ReadonlyMap<DeepReadonly<K>, DeepReadonly<V>> {
15
+ }
16
+ declare type DeepReadonlyObject<T> = {
17
+ readonly [K in keyof T]: DeepReadonly<T[K]>;
18
+ };
19
+ export declare type Default<T, D> = T extends undefined ? D : T;
20
+ export {};
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /*
3
+ Author: Ing. Luca Gian Scaringella
4
+ GitHub: LucaCode
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zation-assured",
3
- "version": "0.5.1",
3
+ "version": "3.0.0-dev.1",
4
4
  "license": "MIT",
5
5
  "description": "Library For Testing Zation Servers",
6
6
  "main": "dist/index.js",
@@ -15,12 +15,12 @@
15
15
  "url": "https://github.com/ZationServer/zation-assured.git"
16
16
  },
17
17
  "author": {
18
- "name": "Luca Scaringella",
19
- "email": "lucacode1@gmail.com",
20
- "url": "https://luca.scaringella.de"
18
+ "name": "Ing. Luca Gian Scaringella",
19
+ "email": "lucacode1@gmail.com"
21
20
  },
22
21
  "files": [
23
- "dist/**/*"
22
+ "dist/**/*",
23
+ "!.DS_Store"
24
24
  ],
25
25
  "keywords": [
26
26
  "esay",
@@ -39,17 +39,15 @@
39
39
  "intergrationTests"
40
40
  ],
41
41
  "dependencies": {
42
- "@types/mocha": "^5.2.6",
43
42
  "@types/node": "^12.7.2",
44
43
  "chai": "^4.3.3",
45
- "mocha": "^6.1.4",
46
44
  "path": "0.12.7",
47
- "zation-client": "^1.5.0",
48
- "forint": "^0.2.0"
45
+ "zation-client": "^3.0.0-dev.3",
46
+ "forint": "^0.2.1"
49
47
  },
50
48
  "devDependencies": {
51
49
  "gulp": "4.0.0",
52
50
  "gulp-typescript": "5.0.1",
53
- "typescript": "^4.2.3"
51
+ "typescript": "^4.5.2"
54
52
  }
55
53
  }
@@ -1,3 +0,0 @@
1
- declare type Func = () => Promise<void> | void;
2
- export declare const beforeTest: (beforeTest: Func) => void;
3
- export {};
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.beforeTest = (beforeTest) => {
17
- before(() => __awaiter(this, void 0, void 0, function* () {
18
- yield beforeTest();
19
- }));
20
- };
@@ -1,3 +0,0 @@
1
- import { ZationClient } from 'zation-client';
2
- import { StandaloneClientAsserter } from "../helper/asserter/standaloneClientAsserter";
3
- export declare const client: (client: ZationClient<any, any> | ZationClient<any, any>[], testDescription?: string | undefined) => StandaloneClientAsserter;
@@ -1,11 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- const standaloneClientAsserter_1 = require("../helper/asserter/standaloneClientAsserter");
9
- exports.client = (client, testDescription) => {
10
- return new standaloneClientAsserter_1.StandaloneClientAsserter(client, testDescription);
11
- };
@@ -1 +0,0 @@
1
-
@@ -1,6 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
@@ -1,8 +0,0 @@
1
- export declare class InstanceManager {
2
- private static instance;
3
- static getInstance(): InstanceManager;
4
- private constructor();
5
- startTestServer(): Promise<void>;
6
- stopTestServer(): Promise<void>;
7
- }
8
- export declare const getInstanceManager: () => InstanceManager;
@@ -1,48 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const childProcess = require('child_process');
17
- const exec = childProcess.exec;
18
- const fork = childProcess.fork;
19
- const uuid = require('uuid');
20
- const path = require('path');
21
- class InstanceManager {
22
- constructor() {
23
- // @ts-ignore
24
- console.log(process.cwd());
25
- }
26
- static getInstance() {
27
- if (InstanceManager.instance !== null) {
28
- return InstanceManager.instance;
29
- }
30
- else {
31
- InstanceManager.instance = new InstanceManager();
32
- return InstanceManager.instance;
33
- }
34
- }
35
- startTestServer() {
36
- return __awaiter(this, void 0, void 0, function* () {
37
- });
38
- }
39
- stopTestServer() {
40
- return __awaiter(this, void 0, void 0, function* () {
41
- });
42
- }
43
- }
44
- InstanceManager.instance = null;
45
- exports.InstanceManager = InstanceManager;
46
- exports.getInstanceManager = () => {
47
- return InstanceManager.getInstance();
48
- };
@@ -1,3 +0,0 @@
1
- declare type Func = () => Promise<void> | void;
2
- export declare const testArea: (title: string, area: Func, testServer?: boolean) => void;
3
- export {};
@@ -1,41 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const logger_1 = require("../helper/console/logger");
17
- const instanceManager_1 = require("./instanceManager");
18
- let firstCall = true;
19
- exports.testArea = (title, area, testServer = true) => {
20
- if (firstCall) {
21
- firstCall = false;
22
- logger_1.Logger.logBusy('Run Tests');
23
- if (testServer) {
24
- before(function () {
25
- return __awaiter(this, void 0, void 0, function* () {
26
- logger_1.Logger.logBusy('Starting Test server');
27
- yield instanceManager_1.InstanceManager.getInstance().startTestServer();
28
- logger_1.Logger.logInfo('Test server started');
29
- console.log();
30
- });
31
- });
32
- after(() => __awaiter(this, void 0, void 0, function* () {
33
- yield instanceManager_1.InstanceManager.getInstance().stopTestServer();
34
- logger_1.Logger.logInfo('Test server stopped');
35
- }));
36
- }
37
- }
38
- describe(title, () => __awaiter(this, void 0, void 0, function* () {
39
- yield area();
40
- }));
41
- };
@@ -1,19 +0,0 @@
1
- interface TestServerConfig {
2
- port: number;
3
- volume: string;
4
- }
5
- export declare class TestServerManager {
6
- private static config;
7
- private static instance;
8
- private testServerId;
9
- private testServerInstance;
10
- static getInstance(): TestServerManager;
11
- static Config: TestServerConfig;
12
- private constructor();
13
- startTestServer(): Promise<{}>;
14
- stopTestServer(): Promise<void>;
15
- private stopDockerInstance;
16
- private rmDockerInstance;
17
- }
18
- export declare const getInstanceManager: () => TestServerManager;
19
- export {};
@@ -1,100 +0,0 @@
1
- "use strict";
2
- /*
3
- Author: Luca Scaringella
4
- GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
6
- */
7
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- return new (P || (P = Promise))(function (resolve, reject) {
9
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
10
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
11
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
12
- step((generator = generator.apply(thisArg, _arguments || [])).next());
13
- });
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const childProcess = require('child_process');
17
- const exec = childProcess.exec;
18
- const fork = childProcess.fork;
19
- const uuid = require('uuid');
20
- const path = require('path');
21
- class TestServerManager {
22
- constructor() {
23
- this.testServerId = 'testServer-' + process.pid;
24
- }
25
- static getInstance() {
26
- if (TestServerManager.instance !== null) {
27
- return TestServerManager.instance;
28
- }
29
- else {
30
- TestServerManager.instance = new TestServerManager();
31
- return TestServerManager.instance;
32
- }
33
- }
34
- // noinspection JSUnusedGlobalSymbols
35
- static set Config(config) {
36
- TestServerManager.config = config;
37
- }
38
- // noinspection JSUnusedGlobalSymbols
39
- static get Config() {
40
- return TestServerManager.config;
41
- }
42
- startTestServer() {
43
- return __awaiter(this, void 0, void 0, function* () {
44
- return new Promise((resolve, reject) => {
45
- const instanceProcess = exec(`docker run --env TEST=true -p ` +
46
- `127.0.0.1:${TestServerManager.config.port}:${TestServerManager.config.port} -v ${TestServerManager.config.volume}:/usr/src/app/:z ` +
47
- `-w /usr/src/app/ --expose ${TestServerManager.config.port} --network="host" --name ${this.testServerId} node:8.9 npm run start:docker:test`, (err) => {
48
- if (err) {
49
- reject(err);
50
- }
51
- });
52
- instanceProcess.stdout.on('data', (data) => {
53
- if (data.indexOf('started') !== -1) {
54
- this.testServerInstance = instanceProcess;
55
- setTimeout(() => {
56
- resolve(instanceProcess);
57
- }, 2000);
58
- }
59
- });
60
- instanceProcess.stdout.pipe(process.stdout);
61
- });
62
- });
63
- }
64
- stopTestServer() {
65
- return __awaiter(this, void 0, void 0, function* () {
66
- yield this.stopDockerInstance();
67
- yield this.rmDockerInstance();
68
- if (this.testServerInstance) {
69
- this.testServerInstance.kill();
70
- }
71
- });
72
- }
73
- stopDockerInstance() {
74
- return __awaiter(this, void 0, void 0, function* () {
75
- yield new Promise((resolve) => {
76
- exec(`docker stop ${this.testServerId}`, () => {
77
- resolve();
78
- });
79
- });
80
- });
81
- }
82
- rmDockerInstance() {
83
- return __awaiter(this, void 0, void 0, function* () {
84
- yield new Promise((resolve) => {
85
- exec(`docker rm -f ${this.testServerId}`, () => {
86
- resolve();
87
- });
88
- });
89
- });
90
- }
91
- }
92
- TestServerManager.config = {
93
- port: 3001,
94
- volume: process.cwd()
95
- };
96
- TestServerManager.instance = null;
97
- exports.TestServerManager = TestServerManager;
98
- exports.getInstanceManager = () => {
99
- return TestServerManager.getInstance();
100
- };
@@ -1,102 +0,0 @@
1
- import { Test } from "../test/test";
2
- import { ZationClient } from 'zation-client';
3
- import ObjectAsserter from "./objectAsserter";
4
- import { EventAsserter, Responder } from "./eventAsserter";
5
- export declare abstract class AbstractClientAsserter<T> {
6
- protected _test: Test;
7
- protected clients: ZationClient[];
8
- protected abstract self(): T;
9
- protected constructor(clients: ZationClient[], test: Test);
10
- protected _forEachClient(func: (client: ZationClient, i: number) => Promise<void>): Promise<void>;
11
- /**
12
- * @description
13
- * Assert that the client is connected.
14
- * @param timeout
15
- * With this parameter, you can set a time limit in that the assertion must be successful.
16
- */
17
- isConnected(timeout?: number): T;
18
- /**
19
- * @description
20
- * Assert that the client is disconnected.
21
- * @param timeout
22
- * With this parameter, you can set a time limit in that the assertion must be successful.
23
- */
24
- isDisconnected(timeout?: number): T;
25
- /**
26
- * @description
27
- * Assert that the client is authenticated.
28
- * @param timeout
29
- * With this parameter, you can set a time limit in that the assertion must be successful.
30
- */
31
- isAuthenticated(timeout?: number): T;
32
- /**
33
- * @description
34
- * Assert that the client is deauthenticated.
35
- * @param timeout
36
- * With this parameter, you can set a time limit in that the assertion must be successful.
37
- */
38
- isDeauthenticated(timeout?: number): T;
39
- /**
40
- * @description
41
- * Assert that the client has a user id.
42
- * @param userId
43
- * If it is not given it will assert that the client has any user id.
44
- */
45
- hasUserId(userId?: number | string): T;
46
- /**
47
- * @description
48
- * Assert that the client has a authUserGroup.
49
- * @param authUserGroup
50
- * If it is not given it will assert that the client has any authUserGroup.
51
- */
52
- hasAuthUserGroup(authUserGroup?: string): T;
53
- /**
54
- * @description
55
- * Assert that the client has a specific token id.
56
- */
57
- hasTokenId(tokenId: string): T;
58
- /**
59
- * @description
60
- * Assert that the client has panel access.
61
- */
62
- hasPanelAccess(access?: boolean): T;
63
- /**
64
- * @description
65
- * Assert the token payload of the client.
66
- */
67
- assertTokenPayload(): ObjectAsserter<T>;
68
- /**
69
- * @description
70
- * With this function you can create custom assertions for a client.
71
- * @param assert
72
- * The assert function with params:
73
- * -client the client
74
- * -index the index of the client
75
- */
76
- assert(assert: (client: ZationClient, index: number) => Promise<void> | void): T;
77
- /**
78
- * @description
79
- * With this function, you can do extra things in the test.
80
- * Subscribe a channel, publish to a channel...
81
- * @param func
82
- * @param failMsg if not provided it throws the specific error.
83
- */
84
- do(func: () => void | Promise<void>, failMsg?: string): T;
85
- /**
86
- * @description
87
- * With this function, you can do extra things in the test
88
- * and assert that it should throw an error or a specific error.
89
- * Subscribe a channel, publish to a channel...
90
- * @param func
91
- * @param failMsg
92
- * @param errors
93
- */
94
- doShouldThrow(func: () => void | Promise<void>, failMsg: string, ...errors: any[]): T;
95
- /**
96
- * @description
97
- * Assert that the client should receive an emit-event from the server.
98
- * It uses the custom zation event namespace
99
- * (so you cannot have name conflicts with internal event names).
100
- */
101
- receiveEvent(event: string, responder?: Responder): EventAsserter<T>;
102
- }