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
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -19,8 +19,9 @@ const timeoutAssert_1 = require("../../timeout/timeoutAssert");
19
19
  const actionUtils_1 = require("../../utils/actionUtils");
20
20
  const dataEventAsserter_1 = require("../event/dataEventAsserter");
21
21
  const valueAsserter_1 = require("../value/valueAsserter");
22
- const codeDataEventAsserter_1 = require("../event/codeDataEventAsserter");
22
+ const codeMetadataEventAsserter_1 = require("../event/codeMetadataEventAsserter");
23
23
  const chai_1 = require("chai");
24
+ const forint_1 = require("forint");
24
25
  class AbstractDataboxAsserter {
25
26
  constructor(databoxes, test) {
26
27
  this._test = test;
@@ -28,23 +29,19 @@ class AbstractDataboxAsserter {
28
29
  }
29
30
  _forEachDatabox(func) {
30
31
  return __awaiter(this, void 0, void 0, function* () {
31
- let promises = [];
32
- this.databoxes.forEach((c, i) => {
33
- promises.push(func(c, i));
34
- });
35
- yield Promise.all(promises);
32
+ yield Promise.all(this.databoxes.map((db, i) => func(db, i)));
36
33
  });
37
34
  }
38
35
  // noinspection JSUnusedGlobalSymbols
39
36
  /**
40
37
  * @description
41
- * Assert that the databox is connected.
38
+ * Asserts that the databox is connected.
42
39
  * @param timeout
43
- * With this parameter, you can set a time limit in that the assertion must be successful.
40
+ * Sets a time limit in that the assertion must be successful.
44
41
  */
45
42
  isConnected(timeout = 0) {
46
43
  this._test.test(() => __awaiter(this, void 0, void 0, function* () {
47
- yield this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
44
+ return this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
48
45
  if (d.isConnected())
49
46
  return;
50
47
  const toa = new timeoutAssert_1.TimeoutAssert(`Databox: ${i} should be connected.`, timeout);
@@ -59,13 +56,13 @@ class AbstractDataboxAsserter {
59
56
  // noinspection JSUnusedGlobalSymbols
60
57
  /**
61
58
  * @description
62
- * Assert that the databox is disconnected.
59
+ * Asserts that the databox is disconnected.
63
60
  * @param timeout
64
- * With this parameter, you can set a time limit in that the assertion must be successful.
61
+ * Sets a time limit in that the assertion must be successful.
65
62
  */
66
63
  isDisconnected(timeout = 0) {
67
64
  this._test.test(() => __awaiter(this, void 0, void 0, function* () {
68
- yield this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
65
+ return this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
69
66
  if (!d.isConnected())
70
67
  return;
71
68
  const toa = new timeoutAssert_1.TimeoutAssert(`Databox: ${i} should be disconnected.`, timeout);
@@ -79,28 +76,20 @@ class AbstractDataboxAsserter {
79
76
  }
80
77
  // noinspection JSUnusedGlobalSymbols
81
78
  /**
82
- * Assert the current data of the databox.
79
+ * Asserts the current data of the databox.
83
80
  */
84
81
  data() {
85
- return new valueAsserter_1.ValueAsserter(this.self(), 'Databox', (test) => {
86
- this._test.test(() => __awaiter(this, void 0, void 0, function* () {
87
- yield this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
88
- test(d.data, ` ${i} data:`);
89
- }));
90
- }));
82
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
83
+ this._test.test(() => this._forEachDatabox((d, i) => test(d.data, `Databox: ${i} data:`)));
91
84
  });
92
85
  }
93
86
  // noinspection JSUnusedGlobalSymbols
94
87
  /**
95
- * Assert the current member of the databox.
88
+ * Asserts the current member of the databox.
96
89
  */
97
90
  member() {
98
- return new valueAsserter_1.ValueAsserter(this.self(), 'Databox', (test) => {
99
- this._test.test(() => __awaiter(this, void 0, void 0, function* () {
100
- yield this._forEachDatabox((d, i) => __awaiter(this, void 0, void 0, function* () {
101
- test(d.member, ` ${i} member:`);
102
- }));
103
- }));
91
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
92
+ this._test.test(() => this._forEachDatabox((d, i) => test(d.member, `Databox: ${i} member:`)));
104
93
  });
105
94
  }
106
95
  // noinspection JSUnusedGlobalSymbols
@@ -117,7 +106,7 @@ class AbstractDataboxAsserter {
117
106
  yield databox.fetch(fetchData);
118
107
  }
119
108
  catch (err) {
120
- chai_1.assert.fail(`Databox ${number} fetch ${i} failed. Error -> ` + err.stack);
109
+ chai_1.assert.fail(`Databox: ${number} fetch ${i} failed. Error -> ` + err);
121
110
  }
122
111
  }))());
123
112
  }
@@ -130,101 +119,76 @@ class AbstractDataboxAsserter {
130
119
  // noinspection JSUnusedGlobalSymbols
131
120
  /**
132
121
  * @description
133
- * This function lets you do extra actions on each databox and asserts that no error is thrown.
134
- * When an error throws, it lets the test fail with the provided message or the concrete error.
135
- * @param action
136
- * @param message if not provided it throws the specific error.
137
- */
138
- action(action, message) {
139
- this.databoxes.forEach((databox, index) => {
140
- actionUtils_1.default.action(this._test, () => action(databox, index), message);
141
- });
142
- this._test.pushSyncWait();
143
- return this.self();
144
- }
145
- // noinspection JSUnusedGlobalSymbols
146
- /**
147
- * @description
148
- * This function lets you do extra actions on each databox and
149
- * asserts that an error or an error instance of a specific class is thrown.
150
- * When no error is thrown, or the error does not match with the given classes
151
- * (only if at least one class is given), it lets the test fail with the provided message.
122
+ * Runs a extra test action and asserts that no error will be thrown.
123
+ * AssertionErrors will be rethrown, and all other errors will fail
124
+ * the test with the provided message or the concrete error.
152
125
  * @param action
153
- * @param message
154
- * @param validErrorClasses
126
+ * @param failMsg If not provided, the concrete error is used.
155
127
  */
156
- actionShouldThrow(action, message, ...validErrorClasses) {
157
- this.databoxes.forEach((databox, index) => {
158
- actionUtils_1.default.actionShouldThrow(this._test, () => action(databox, index), message, ...validErrorClasses);
159
- });
128
+ action(action, failMsg) {
129
+ this._test.test(() => this._forEachDatabox((databox, index) => actionUtils_1.default.runAction(() => action(databox, index), failMsg)));
160
130
  this._test.pushSyncWait();
161
131
  return this.self();
162
132
  }
163
133
  // noinspection JSUnusedGlobalSymbols
164
134
  /**
165
135
  * @description
166
- * Assert that the databox should trigger an DataChange event.
167
- * It is also possible to assert only in case of specific data event reasons.
136
+ * Asserts that the databox should trigger an data change event.
137
+ * It is also possible to filter for specific data event reasons with a forint query.
168
138
  */
169
- dataChangeTriggers(...reasons) {
139
+ dataChangeTriggers(reasonFilter) {
140
+ const filter = reasonFilter ? (0, forint_1.default)(reasonFilter) : () => true;
170
141
  return new dataEventAsserter_1.DataEventAsserter(this.databoxes.map(d => {
171
142
  return (listener) => {
172
143
  let handler;
173
- d.onDataChange(handler = (data, triggerReasons) => {
174
- if (reasons.length === 0 || (triggerReasons.findIndex(r => reasons.indexOf(r) !== -1) !== -1)) {
144
+ d.onDataChange(handler = (data, reason, storage) => {
145
+ if (filter(reason)) {
175
146
  d.offDataChange(handler);
176
- listener(data);
147
+ listener(data, reason, storage);
177
148
  }
178
149
  });
179
150
  };
180
- }), "Databox", "DataChange", this._test, this.self(), ((reasons.length > 0) ? ` with any of these reasons: [${reasons}]` : ''));
151
+ }), "Databox", "data change", this._test, this.self(), 0, ((reasonFilter) ? ` with reasons that match the filter: ${reasonFilter}` : ''));
181
152
  }
182
153
  // noinspection JSUnusedGlobalSymbols
183
154
  /**
184
155
  * @description
185
- * Assert that the databox should trigger an DataTouch event.
186
- * It is also possible to assert only in case of specific data event reasons.
156
+ * Asserts that the databox should trigger an data touch event.
157
+ * It is also possible to filter for specific data event reasons with a forint query.
187
158
  */
188
- dataTouchTriggers(...reasons) {
159
+ dataTouchTriggers(reasonFilter) {
160
+ const filter = reasonFilter ? (0, forint_1.default)(reasonFilter) : () => true;
189
161
  return new dataEventAsserter_1.DataEventAsserter(this.databoxes.map(d => {
190
162
  return (listener) => {
191
163
  let handler;
192
- d.onDataTouch(handler = (data, triggerReasons) => {
193
- if (reasons.length === 0 || (triggerReasons.findIndex(r => reasons.indexOf(r) !== -1) !== -1)) {
164
+ d.onDataTouch(handler = (data, reason, storage) => {
165
+ if (filter(reason)) {
194
166
  d.offDataTouch(handler);
195
- listener(data);
167
+ listener(data, reason, storage);
196
168
  }
197
169
  });
198
170
  };
199
- }), "Databox", "DataTouch", this._test, this.self(), ((reasons.length > 0) ? ` with any of these reasons: [${reasons}]` : ''));
171
+ }), "Databox", "data touch", this._test, this.self(), 0, ((reasonFilter) ? ` with reasons that match the filter: ${reasonFilter}` : ''));
200
172
  }
201
173
  // noinspection JSUnusedGlobalSymbols
202
174
  /**
203
175
  * @description
204
- * Assert that the databox should trigger an Close event.
176
+ * Asserts that the databox should trigger an close event.
205
177
  */
206
178
  closeTriggers() {
207
- return new codeDataEventAsserter_1.CodeDataEventAsserter(this.databoxes.map(d => {
208
- return (listener) => {
209
- d.onceClose((code, data) => {
210
- listener(data, code);
211
- });
212
- };
213
- }), "Databox", "Close", this._test, this.self());
179
+ return new codeMetadataEventAsserter_1.CodeMetadataEventAsserter(this.databoxes.map(d => {
180
+ return (listener) => d.onceClose(listener);
181
+ }), "Databox", "close", this._test, this.self(), 0, 1);
214
182
  }
215
183
  // noinspection JSUnusedGlobalSymbols
216
184
  /**
217
185
  * @description
218
- * Assert that the databox should trigger an KickOut event.
186
+ * Asserts that the databox should trigger an kick out event.
219
187
  */
220
188
  kickOutTriggers() {
221
- return new codeDataEventAsserter_1.CodeDataEventAsserter(this.databoxes.map(d => {
222
- return (listener) => {
223
- d.onceKickOut((code, data) => {
224
- listener(data, code);
225
- });
226
- };
227
- }), "Databox", "KickOut", this._test, this.self());
189
+ return new codeMetadataEventAsserter_1.CodeMetadataEventAsserter(this.databoxes.map(d => {
190
+ return (listener) => d.onceKickOut(listener);
191
+ }), "Databox", "kick out", this._test, this.self(), 0, 1);
228
192
  }
229
193
  }
230
194
  exports.AbstractDataboxAsserter = AbstractDataboxAsserter;
@@ -1,13 +1,13 @@
1
1
  import { Databox } from 'zation-client';
2
2
  import { Test } from "../../test/test";
3
3
  import { AbstractDataboxAsserter } from "./abstractDataboxAsserter";
4
- export declare class DataboxAsserter<T> extends AbstractDataboxAsserter<DataboxAsserter<T>> {
4
+ export declare class DataboxAsserter<T, D extends Databox<any, any, any, any>> extends AbstractDataboxAsserter<DataboxAsserter<T, D>, D> {
5
5
  private readonly _source;
6
- constructor(databoxes: Databox[], test: Test, source: T);
6
+ constructor(databoxes: D[], test: Test, source: T);
7
7
  /**
8
8
  * @description
9
9
  * End the databox asserter.
10
10
  */
11
11
  end(): T;
12
- protected self(): DataboxAsserter<T>;
12
+ protected self(): DataboxAsserter<T, D>;
13
13
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.DataboxAsserter = void 0;
@@ -1,16 +1,17 @@
1
1
  import { Databox } from 'zation-client';
2
2
  import { AbstractDataboxAsserter } from "./abstractDataboxAsserter";
3
- export declare class StandaloneDataboxAsserter extends AbstractDataboxAsserter<StandaloneDataboxAsserter> {
4
- constructor(databox: Databox | Databox[], itTestDescription?: string);
3
+ import { DataboxMember } from "../../utils/types";
4
+ export declare class StandaloneDataboxAsserter<D extends Databox<any, any, any, any>> extends AbstractDataboxAsserter<StandaloneDataboxAsserter<D>, D> {
5
+ constructor(databox: D | D[], description?: string);
5
6
  /**
6
7
  * @description
7
- * Will connect all databoxes (before the test).
8
+ * Connects all databoxes (before the test).
8
9
  */
9
- connect(member?: any): StandaloneDataboxAsserter;
10
+ connect(member?: DataboxMember<D>): StandaloneDataboxAsserter<D>;
10
11
  /**
11
12
  * @description
12
13
  * Run the test.
13
14
  */
14
15
  test(): Promise<void>;
15
- protected self(): StandaloneDataboxAsserter;
16
+ protected self(): StandaloneDataboxAsserter<D>;
16
17
  }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -19,13 +19,13 @@ const test_1 = require("../../test/test");
19
19
  const abstractDataboxAsserter_1 = require("./abstractDataboxAsserter");
20
20
  const chai_1 = require("chai");
21
21
  class StandaloneDataboxAsserter extends abstractDataboxAsserter_1.AbstractDataboxAsserter {
22
- constructor(databox, itTestDescription) {
23
- super(Array.isArray(databox) ? databox : [databox], new test_1.Test(itTestDescription));
22
+ constructor(databox, description) {
23
+ super(Array.isArray(databox) ? databox : [databox], new test_1.Test(description));
24
24
  }
25
25
  // noinspection JSUnusedGlobalSymbols
26
26
  /**
27
27
  * @description
28
- * Will connect all databoxes (before the test).
28
+ * Connects all databoxes (before the test).
29
29
  */
30
30
  connect(member) {
31
31
  this._test.beforeTest(() => __awaiter(this, void 0, void 0, function* () {
@@ -34,7 +34,7 @@ class StandaloneDataboxAsserter extends abstractDataboxAsserter_1.AbstractDatabo
34
34
  yield databox.connect(member);
35
35
  }
36
36
  catch (err) {
37
- chai_1.assert.fail(`Cannot connect the databox ${index}. Error -> ` + err.stack);
37
+ chai_1.assert.fail(`Cannot connect the databox ${index}. Error -> ` + err);
38
38
  }
39
39
  })));
40
40
  }));
@@ -1,4 +1,5 @@
1
1
  import { Test } from "../../test/test";
2
+ import { ValueAsserter } from "../value/valueAsserter";
2
3
  export declare type EventOnceListenerAdder<A extends any[]> = (listener: (...data: A) => void) => void;
3
4
  export declare abstract class AbstractEventAsserter<T, S, A extends any[] = [any]> {
4
5
  private messagePostfix;
@@ -10,22 +11,29 @@ export declare abstract class AbstractEventAsserter<T, S, A extends any[] = [any
10
11
  protected readonly _event: string;
11
12
  private _timeout;
12
13
  private _not;
13
- constructor(eventOnceListenerAdder: EventOnceListenerAdder<A>[], target: string, event: string, test: Test, source: S, messagePostfix?: string);
14
+ protected readonly _argsAsserter: ((args: A, target: string) => void)[];
15
+ protected constructor(eventOnceListenerAdder: EventOnceListenerAdder<A>[], target: string, event: string, test: Test, source: S, messagePostfix?: string);
14
16
  /**
15
17
  * @description
16
- * With this function, you can set a time limit in milliseconds in that the event should occur.
18
+ * Sets a time limit in milliseconds in that the event should occur.
17
19
  * @default
18
20
  * The default value is 200ms.
19
21
  */
20
22
  timeout(timeout: number): T;
21
23
  /**
22
24
  * @description
23
- * With this function, you set that the event should not occur.
25
+ * Sets that the event should not occur.
24
26
  * @default
25
27
  * The default value is false.
26
28
  */
27
29
  not(): T;
28
- protected _onEventArgs(args: A, index: number): void;
30
+ /**
31
+ * @description
32
+ * Asserts an argument value of the event.
33
+ * Notice that the argument will not be checked in (get not) mode.
34
+ */
35
+ withArgument<AI extends number>(argIndex: AI): ValueAsserter<A[AI], T>;
36
+ private _assertEventArgs;
29
37
  /**
30
38
  * @description
31
39
  * End the event asserter.
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -16,12 +16,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.AbstractEventAsserter = void 0;
18
18
  const timeoutAssert_1 = require("../../timeout/timeoutAssert");
19
+ const valueAsserter_1 = require("../value/valueAsserter");
19
20
  const assert = require('assert');
20
21
  class AbstractEventAsserter {
21
22
  constructor(eventOnceListenerAdder, target, event, test, source, messagePostfix = '') {
22
23
  this.messagePostfix = messagePostfix;
23
24
  this._timeout = 200;
24
25
  this._not = false;
26
+ this._argsAsserter = [];
25
27
  this._eventOnceListenerAdder = eventOnceListenerAdder;
26
28
  this._target = target;
27
29
  this._event = event;
@@ -31,7 +33,7 @@ class AbstractEventAsserter {
31
33
  // noinspection JSUnusedGlobalSymbols
32
34
  /**
33
35
  * @description
34
- * With this function, you can set a time limit in milliseconds in that the event should occur.
36
+ * Sets a time limit in milliseconds in that the event should occur.
35
37
  * @default
36
38
  * The default value is 200ms.
37
39
  */
@@ -42,7 +44,7 @@ class AbstractEventAsserter {
42
44
  // noinspection JSUnusedGlobalSymbols
43
45
  /**
44
46
  * @description
45
- * With this function, you set that the event should not occur.
47
+ * Sets that the event should not occur.
46
48
  * @default
47
49
  * The default value is false.
48
50
  */
@@ -50,7 +52,22 @@ class AbstractEventAsserter {
50
52
  this._not = true;
51
53
  return this.self();
52
54
  }
53
- _onEventArgs(args, index) { }
55
+ // noinspection JSUnusedGlobalSymbols
56
+ /**
57
+ * @description
58
+ * Asserts an argument value of the event.
59
+ * Notice that the argument will not be checked in (get not) mode.
60
+ */
61
+ withArgument(argIndex) {
62
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
63
+ this._argsAsserter.push((args, target) => {
64
+ test(args[argIndex], target + `argument: ${argIndex}`);
65
+ });
66
+ });
67
+ }
68
+ _assertEventArgs(args, index) {
69
+ this._argsAsserter.forEach(asserter => asserter(args, `${this._target}: ${index} event: ${this._event} -> `));
70
+ }
54
71
  // noinspection JSUnusedGlobalSymbols
55
72
  /**
56
73
  * @description
@@ -58,9 +75,7 @@ class AbstractEventAsserter {
58
75
  */
59
76
  end() {
60
77
  this._eventOnceListenerAdder.forEach((addListener, i) => {
61
- let receivedEmit = false;
62
- let listenerArgs;
63
- let resolve;
78
+ let receivedEmit = false, listenerArgs, resolve;
64
79
  this._test.beforeTest(() => {
65
80
  addListener((...args) => {
66
81
  listenerArgs = args;
@@ -76,13 +91,13 @@ class AbstractEventAsserter {
76
91
  resolve = () => toa.resolve();
77
92
  yield toa.set();
78
93
  if (!this._not)
79
- this._onEventArgs(listenerArgs, i);
94
+ this._assertEventArgs(listenerArgs, i);
80
95
  }
81
96
  else {
82
97
  if (this._not)
83
98
  assert.fail(failMsg);
84
99
  else
85
- this._onEventArgs(listenerArgs, i);
100
+ this._assertEventArgs(listenerArgs, i);
86
101
  }
87
102
  }));
88
103
  });
@@ -0,0 +1,21 @@
1
+ import { ValueAsserter } from "../value/valueAsserter";
2
+ import { AbstractEventAsserter, EventOnceListenerAdder } from "./abstractEventAsserter";
3
+ import { Test } from "../../test/test";
4
+ export declare class CodeMetadataEventAsserter<S, A extends any[], CI extends keyof A, MDI extends keyof A> extends AbstractEventAsserter<CodeMetadataEventAsserter<S, A, CI, MDI>, S, A> {
5
+ private readonly codeIndex;
6
+ private readonly metadataIndex;
7
+ constructor(eventOnceListenerAdder: EventOnceListenerAdder<A>[], target: string, event: string, test: Test, source: S, codeIndex: CI, metadataIndex: MDI, messagePostfix?: string);
8
+ /**
9
+ * @description
10
+ * Asserts the code of the event.
11
+ * Notice that the code will not be checked in (get not) mode.
12
+ */
13
+ withCode(): ValueAsserter<A[CI], CodeMetadataEventAsserter<S, A, CI, MDI>>;
14
+ /**
15
+ * @description
16
+ * Asserts the metadata of the event.
17
+ * Notice that the metadata will not be checked in (get not) mode.
18
+ */
19
+ withMetadata(): ValueAsserter<A[MDI], CodeMetadataEventAsserter<S, A, CI, MDI>>;
20
+ protected self(): CodeMetadataEventAsserter<S, A, CI, MDI>;
21
+ }
@@ -0,0 +1,47 @@
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 });
8
+ exports.CodeMetadataEventAsserter = void 0;
9
+ const valueAsserter_1 = require("../value/valueAsserter");
10
+ const abstractEventAsserter_1 = require("./abstractEventAsserter");
11
+ class CodeMetadataEventAsserter extends abstractEventAsserter_1.AbstractEventAsserter {
12
+ constructor(eventOnceListenerAdder, target, event, test, source, codeIndex, metadataIndex, messagePostfix = "") {
13
+ super(eventOnceListenerAdder, target, event, test, source, messagePostfix);
14
+ this.codeIndex = codeIndex;
15
+ this.metadataIndex = metadataIndex;
16
+ }
17
+ // noinspection JSUnusedGlobalSymbols
18
+ /**
19
+ * @description
20
+ * Asserts the code of the event.
21
+ * Notice that the code will not be checked in (get not) mode.
22
+ */
23
+ withCode() {
24
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
25
+ this._argsAsserter.push((args, target) => {
26
+ test(args[this.codeIndex], target + 'code');
27
+ });
28
+ });
29
+ }
30
+ // noinspection JSUnusedGlobalSymbols
31
+ /**
32
+ * @description
33
+ * Asserts the metadata of the event.
34
+ * Notice that the metadata will not be checked in (get not) mode.
35
+ */
36
+ withMetadata() {
37
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
38
+ this._argsAsserter.push((args, target) => {
39
+ test(args[this.metadataIndex], target + 'metadata');
40
+ });
41
+ });
42
+ }
43
+ self() {
44
+ return this;
45
+ }
46
+ }
47
+ exports.CodeMetadataEventAsserter = CodeMetadataEventAsserter;
@@ -1,4 +1,14 @@
1
- import { AbstractDataEventAsserter } from "./abstractDataEventAsserter";
2
- export declare class DataEventAsserter<S, A extends [any] = [any]> extends AbstractDataEventAsserter<DataEventAsserter<S, A>, S, A> {
3
- protected self(): DataEventAsserter<S, A>;
1
+ import { AbstractEventAsserter, EventOnceListenerAdder } from "./abstractEventAsserter";
2
+ import { Test } from "../../test/test";
3
+ import { ValueAsserter } from "../value/valueAsserter";
4
+ export declare class DataEventAsserter<S, A extends any[], DI extends keyof A> extends AbstractEventAsserter<DataEventAsserter<S, A, DI>, S, A> {
5
+ private readonly dataIndex;
6
+ constructor(eventOnceListenerAdder: EventOnceListenerAdder<A>[], target: string, event: string, test: Test, source: S, dataIndex: DI, messagePostfix?: string);
7
+ /**
8
+ * @description
9
+ * Asserts the data of the event.
10
+ * Notice that the data will not be checked in (get not) mode.
11
+ */
12
+ withData(): ValueAsserter<A[DI], DataEventAsserter<S, A, DI>>;
13
+ protected self(): DataEventAsserter<S, A, DI>;
4
14
  }
@@ -1,13 +1,31 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
8
  exports.DataEventAsserter = void 0;
9
- const abstractDataEventAsserter_1 = require("./abstractDataEventAsserter");
10
- class DataEventAsserter extends abstractDataEventAsserter_1.AbstractDataEventAsserter {
9
+ const abstractEventAsserter_1 = require("./abstractEventAsserter");
10
+ const valueAsserter_1 = require("../value/valueAsserter");
11
+ class DataEventAsserter extends abstractEventAsserter_1.AbstractEventAsserter {
12
+ constructor(eventOnceListenerAdder, target, event, test, source, dataIndex, messagePostfix = "") {
13
+ super(eventOnceListenerAdder, target, event, test, source, messagePostfix);
14
+ this.dataIndex = dataIndex;
15
+ }
16
+ // noinspection JSUnusedGlobalSymbols
17
+ /**
18
+ * @description
19
+ * Asserts the data of the event.
20
+ * Notice that the data will not be checked in (get not) mode.
21
+ */
22
+ withData() {
23
+ return new valueAsserter_1.ValueAsserter(this.self(), (test) => {
24
+ this._argsAsserter.push((args, target) => {
25
+ test(args[this.dataIndex], target + 'data');
26
+ });
27
+ });
28
+ }
11
29
  self() {
12
30
  return this;
13
31
  }
@@ -0,0 +1,9 @@
1
+ import { Client } from "zation-client";
2
+ import { Test } from "../../test/test";
3
+ import { AbstractActionAsserter } from "../abstractActionAsserter";
4
+ export declare class IntegratedTransmitAsserter<C extends Client<any, any>> extends AbstractActionAsserter<IntegratedTransmitAsserter<C>, C> {
5
+ private readonly transmit;
6
+ constructor(transmit: () => Promise<void>, test: Test, client: C);
7
+ protected _executeAction(): Promise<void>;
8
+ protected self(): IntegratedTransmitAsserter<C>;
9
+ }
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  /*
3
- Author: Luca Scaringella
3
+ Author: Ing. Luca Gian Scaringella
4
4
  GitHub: LucaCode
5
- ©Copyright by Luca Scaringella
5
+ Copyright(c) Ing. Luca Gian Scaringella
6
6
  */
7
7
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
8
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -14,20 +14,20 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
14
14
  });
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.TransmitAsserter = void 0;
18
- const rootSendAsserter_1 = require("../rootSendAsserter");
19
- class TransmitAsserter extends rootSendAsserter_1.RootSendAsserter {
20
- constructor(nativeBuilder, test, client) {
17
+ exports.IntegratedTransmitAsserter = void 0;
18
+ const abstractActionAsserter_1 = require("../abstractActionAsserter");
19
+ class IntegratedTransmitAsserter extends abstractActionAsserter_1.AbstractActionAsserter {
20
+ constructor(transmit, test, client) {
21
21
  super(test, client);
22
- this.nativeBuilder = nativeBuilder;
22
+ this.transmit = transmit;
23
23
  }
24
24
  _executeAction() {
25
25
  return __awaiter(this, void 0, void 0, function* () {
26
- yield this.nativeBuilder.send();
26
+ yield this.transmit();
27
27
  });
28
28
  }
29
29
  self() {
30
30
  return this;
31
31
  }
32
32
  }
33
- exports.TransmitAsserter = TransmitAsserter;
33
+ exports.IntegratedTransmitAsserter = IntegratedTransmitAsserter;