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.
- package/LICENSE +1 -1
- package/README.md +55 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +3 -9
- package/dist/lib/api/assert.d.ts +16 -9
- package/dist/lib/api/assert.js +16 -12
- package/dist/lib/api/testHelper.d.ts +0 -8
- package/dist/lib/api/testHelper.js +6 -83
- package/dist/lib/api/when.d.ts +41 -45
- package/dist/lib/api/when.js +42 -55
- package/dist/lib/helper/asserter/abstractActionAsserter.d.ts +68 -0
- package/dist/lib/helper/asserter/{rootSendAsserter.js → abstractActionAsserter.js} +23 -67
- package/dist/lib/helper/asserter/assertStarter.d.ts +5 -0
- package/dist/lib/helper/asserter/assertStarter.js +16 -0
- package/dist/lib/helper/asserter/channel/abstractChannelAsserter.d.ts +24 -33
- package/dist/lib/helper/asserter/channel/abstractChannelAsserter.js +48 -89
- package/dist/lib/helper/asserter/channel/channelAsserter.d.ts +3 -3
- package/dist/lib/helper/asserter/channel/channelAsserter.js +2 -2
- package/dist/lib/helper/asserter/channel/standaloneChannelAsserter.d.ts +5 -5
- package/dist/lib/helper/asserter/channel/standaloneChannelAsserter.js +6 -6
- package/dist/lib/helper/asserter/client/abstractClientAsserter.d.ts +29 -47
- package/dist/lib/helper/asserter/client/abstractClientAsserter.js +91 -193
- package/dist/lib/helper/asserter/client/clientAsserter.d.ts +3 -3
- package/dist/lib/helper/asserter/client/clientAsserter.js +2 -2
- package/dist/lib/helper/asserter/client/standaloneClientAsserter.d.ts +5 -5
- package/dist/lib/helper/asserter/client/standaloneClientAsserter.js +6 -6
- package/dist/lib/helper/asserter/controller/integratedResponseAsserter.d.ts +52 -0
- package/dist/lib/helper/asserter/controller/integratedResponseAsserter.js +112 -0
- package/dist/lib/helper/asserter/controller/standaloneResponseAsserter.d.ts +49 -0
- package/dist/lib/helper/asserter/controller/standaloneResponseAsserter.js +108 -0
- package/dist/lib/helper/asserter/databox/abstractDataboxAsserter.d.ts +33 -40
- package/dist/lib/helper/asserter/databox/abstractDataboxAsserter.js +48 -84
- package/dist/lib/helper/asserter/databox/databoxAsserter.d.ts +3 -3
- package/dist/lib/helper/asserter/databox/databoxAsserter.js +2 -2
- package/dist/lib/helper/asserter/databox/standaloneDataboxAsserter.d.ts +6 -5
- package/dist/lib/helper/asserter/databox/standaloneDataboxAsserter.js +6 -6
- package/dist/lib/helper/asserter/event/abstractEventAsserter.d.ts +12 -4
- package/dist/lib/helper/asserter/event/abstractEventAsserter.js +25 -10
- package/dist/lib/helper/asserter/event/codeMetadataEventAsserter.d.ts +21 -0
- package/dist/lib/helper/asserter/event/codeMetadataEventAsserter.js +47 -0
- package/dist/lib/helper/asserter/event/dataEventAsserter.d.ts +13 -3
- package/dist/lib/helper/asserter/event/dataEventAsserter.js +22 -4
- package/dist/lib/helper/asserter/receiver/integratedTransmitAsserter.d.ts +9 -0
- package/dist/lib/helper/asserter/receiver/{transmitAsserter.js → integratedTransmitAsserter.js} +9 -9
- package/dist/lib/helper/asserter/value/abstractValueAsserter.d.ts +10 -12
- package/dist/lib/helper/asserter/value/abstractValueAsserter.js +46 -50
- package/dist/lib/helper/asserter/value/standaloneValueAsserter.d.ts +3 -3
- package/dist/lib/helper/asserter/value/standaloneValueAsserter.js +6 -6
- package/dist/lib/helper/asserter/value/valueAsserter.d.ts +4 -4
- package/dist/lib/helper/asserter/value/valueAsserter.js +4 -4
- package/dist/lib/helper/backError/backErrorsFilterBuilder.d.ts +12 -0
- package/dist/lib/helper/backError/backErrorsFilterBuilder.js +29 -0
- package/dist/lib/helper/console/logger.js +2 -2
- package/dist/lib/helper/definitions/optionTypes.d.ts +8 -0
- package/dist/lib/helper/definitions/optionTypes.js +7 -0
- package/dist/lib/helper/test/test.d.ts +2 -2
- package/dist/lib/helper/test/test.js +8 -6
- package/dist/lib/helper/timeout/timeoutAssert.js +2 -2
- package/dist/lib/helper/utils/actionUtils.d.ts +5 -18
- package/dist/lib/helper/utils/actionUtils.js +14 -43
- package/dist/lib/helper/utils/types.d.ts +20 -0
- package/dist/lib/helper/utils/types.js +7 -0
- package/package.json +8 -10
- package/dist/lib/api/before.d.ts +0 -3
- package/dist/lib/api/before.js +0 -20
- package/dist/lib/api/client.d.ts +0 -3
- package/dist/lib/api/client.js +0 -11
- package/dist/lib/api/describe.d.ts +0 -1
- package/dist/lib/api/describe.js +0 -6
- package/dist/lib/api/instanceManager.d.ts +0 -8
- package/dist/lib/api/instanceManager.js +0 -48
- package/dist/lib/api/testArea.d.ts +0 -3
- package/dist/lib/api/testArea.js +0 -41
- package/dist/lib/api/testServerManager.d.ts +0 -19
- package/dist/lib/api/testServerManager.js +0 -100
- package/dist/lib/helper/asserter/abstractClientAsserter.d.ts +0 -102
- package/dist/lib/helper/asserter/abstractClientAsserter.js +0 -293
- package/dist/lib/helper/asserter/anyAsserter.d.ts +0 -62
- package/dist/lib/helper/asserter/anyAsserter.js +0 -130
- package/dist/lib/helper/asserter/channelEventAsserter.d.ts +0 -34
- package/dist/lib/helper/asserter/channelEventAsserter.js +0 -84
- package/dist/lib/helper/asserter/channelPubAsserter.d.ts +0 -53
- package/dist/lib/helper/asserter/channelPubAsserter.js +0 -126
- package/dist/lib/helper/asserter/clientAsserter.d.ts +0 -13
- package/dist/lib/helper/asserter/clientAsserter.js +0 -26
- package/dist/lib/helper/asserter/controller/responseAsserter.d.ts +0 -76
- package/dist/lib/helper/asserter/controller/responseAsserter.js +0 -154
- package/dist/lib/helper/asserter/dataEventAsserter.d.ts +0 -40
- package/dist/lib/helper/asserter/dataEventAsserter.js +0 -113
- package/dist/lib/helper/asserter/event/abstractDataEventAsserter.d.ts +0 -13
- package/dist/lib/helper/asserter/event/abstractDataEventAsserter.js +0 -36
- package/dist/lib/helper/asserter/event/codeDataEventAsserter.d.ts +0 -14
- package/dist/lib/helper/asserter/event/codeDataEventAsserter.js +0 -40
- package/dist/lib/helper/asserter/eventAsserter.d.ts +0 -41
- package/dist/lib/helper/asserter/eventAsserter.js +0 -115
- package/dist/lib/helper/asserter/objectAsserter.d.ts +0 -55
- package/dist/lib/helper/asserter/objectAsserter.js +0 -113
- package/dist/lib/helper/asserter/receiver/transmitAsserter.d.ts +0 -9
- package/dist/lib/helper/asserter/responseAsserter.d.ts +0 -129
- package/dist/lib/helper/asserter/responseAsserter.js +0 -260
- package/dist/lib/helper/asserter/rootSendAsserter.d.ts +0 -89
- package/dist/lib/helper/asserter/standaloneClientAsserter.d.ts +0 -11
- package/dist/lib/helper/asserter/standaloneClientAsserter.js +0 -38
- package/dist/lib/helper/assured/clientAssured.d.ts +0 -2
- package/dist/lib/helper/assured/clientAssured.js +0 -11
- package/dist/lib/helper/assured/responseAssured.d.ts +0 -17
- package/dist/lib/helper/assured/responseAssured.js +0 -72
- package/dist/lib/helper/backError/backErrorFilterBuilder.d.ts +0 -13
- package/dist/lib/helper/backError/backErrorFilterBuilder.js +0 -35
- package/dist/lib/helper/builder/controller/abstractRequestBuilder.d.ts +0 -53
- package/dist/lib/helper/builder/controller/abstractRequestBuilder.js +0 -69
- package/dist/lib/helper/builder/controller/authRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/builder/controller/authRequestBuilder.js +0 -30
- package/dist/lib/helper/builder/controller/standardRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/builder/controller/standardRequestBuilder.js +0 -30
- package/dist/lib/helper/builder/controller/validationCheckRequestBuilder.d.ts +0 -21
- package/dist/lib/helper/builder/controller/validationCheckRequestBuilder.js +0 -40
- package/dist/lib/helper/builder/receiver/packageBuilder.d.ts +0 -45
- package/dist/lib/helper/builder/receiver/packageBuilder.js +0 -67
- package/dist/lib/helper/controller/request/abstractRequestBuilder.d.ts +0 -53
- package/dist/lib/helper/controller/request/abstractRequestBuilder.js +0 -68
- package/dist/lib/helper/controller/request/authRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/controller/request/authRequestBuilder.js +0 -29
- package/dist/lib/helper/controller/request/standardRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/controller/request/standardRequestBuilder.js +0 -29
- package/dist/lib/helper/controller/request/validationCheckRequestBuilder.d.ts +0 -21
- package/dist/lib/helper/controller/request/validationCheckRequestBuilder.js +0 -39
- package/dist/lib/helper/data/test.d.ts +0 -13
- package/dist/lib/helper/data/test.js +0 -89
- package/dist/lib/helper/do/actionUtils.d.ts +0 -24
- package/dist/lib/helper/do/actionUtils.js +0 -70
- package/dist/lib/helper/do/doUtils.d.ts +0 -24
- package/dist/lib/helper/do/doUtils.js +0 -80
- package/dist/lib/helper/error/backErrorFilterBuilder.d.ts +0 -13
- package/dist/lib/helper/error/backErrorFilterBuilder.js +0 -34
- package/dist/lib/helper/error/taskErrorFilterBuilder.d.ts +0 -13
- package/dist/lib/helper/error/taskErrorFilterBuilder.js +0 -34
- package/dist/lib/helper/request/abstractRequestBuilder.d.ts +0 -53
- package/dist/lib/helper/request/abstractRequestBuilder.js +0 -68
- package/dist/lib/helper/request/authRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/request/authRequestBuilder.js +0 -29
- package/dist/lib/helper/request/requestBuilder.d.ts +0 -46
- package/dist/lib/helper/request/requestBuilder.js +0 -76
- package/dist/lib/helper/request/standardRequestBuilder.d.ts +0 -15
- package/dist/lib/helper/request/standardRequestBuilder.js +0 -29
- package/dist/lib/helper/request/validationCheckRequestBuilder.d.ts +0 -21
- package/dist/lib/helper/request/validationCheckRequestBuilder.js +0 -39
- package/dist/lib/helper/request/validationRequestBuilder.d.ts +0 -35
- package/dist/lib/helper/request/validationRequestBuilder.js +0 -61
- package/dist/lib/helper/utils/clientUtils.d.ts +0 -4
- 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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
38
|
+
* Asserts that the databox is connected.
|
|
42
39
|
* @param timeout
|
|
43
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
59
|
+
* Asserts that the databox is disconnected.
|
|
63
60
|
* @param timeout
|
|
64
|
-
*
|
|
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
|
-
|
|
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
|
-
*
|
|
79
|
+
* Asserts the current data of the databox.
|
|
83
80
|
*/
|
|
84
81
|
data() {
|
|
85
|
-
return new valueAsserter_1.ValueAsserter(this.self(),
|
|
86
|
-
this._test.test(() =>
|
|
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
|
-
*
|
|
88
|
+
* Asserts the current member of the databox.
|
|
96
89
|
*/
|
|
97
90
|
member() {
|
|
98
|
-
return new valueAsserter_1.ValueAsserter(this.self(),
|
|
99
|
-
this._test.test(() =>
|
|
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
|
|
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
|
-
*
|
|
134
|
-
*
|
|
135
|
-
*
|
|
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
|
|
154
|
-
* @param validErrorClasses
|
|
126
|
+
* @param failMsg If not provided, the concrete error is used.
|
|
155
127
|
*/
|
|
156
|
-
|
|
157
|
-
this.
|
|
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
|
-
*
|
|
167
|
-
* It is also possible to
|
|
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(
|
|
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,
|
|
174
|
-
if (
|
|
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", "
|
|
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
|
-
*
|
|
186
|
-
* It is also possible to
|
|
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(
|
|
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,
|
|
193
|
-
if (
|
|
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", "
|
|
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
|
-
*
|
|
176
|
+
* Asserts that the databox should trigger an close event.
|
|
205
177
|
*/
|
|
206
178
|
closeTriggers() {
|
|
207
|
-
return new
|
|
208
|
-
return (listener) =>
|
|
209
|
-
|
|
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
|
-
*
|
|
186
|
+
* Asserts that the databox should trigger an kick out event.
|
|
219
187
|
*/
|
|
220
188
|
kickOutTriggers() {
|
|
221
|
-
return new
|
|
222
|
-
return (listener) =>
|
|
223
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
4
|
-
|
|
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
|
-
*
|
|
8
|
+
* Connects all databoxes (before the test).
|
|
8
9
|
*/
|
|
9
|
-
connect(member?:
|
|
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
|
-
|
|
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,
|
|
23
|
-
super(Array.isArray(databox) ? databox : [databox], new test_1.Test(
|
|
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
|
-
*
|
|
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
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
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
|
-
*
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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 {
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
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
|
|
10
|
-
|
|
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
|
+
}
|
package/dist/lib/helper/asserter/receiver/{transmitAsserter.js → integratedTransmitAsserter.js}
RENAMED
|
@@ -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
|
-
|
|
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.
|
|
18
|
-
const
|
|
19
|
-
class
|
|
20
|
-
constructor(
|
|
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.
|
|
22
|
+
this.transmit = transmit;
|
|
23
23
|
}
|
|
24
24
|
_executeAction() {
|
|
25
25
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
|
-
yield this.
|
|
26
|
+
yield this.transmit();
|
|
27
27
|
});
|
|
28
28
|
}
|
|
29
29
|
self() {
|
|
30
30
|
return this;
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
|
-
exports.
|
|
33
|
+
exports.IntegratedTransmitAsserter = IntegratedTransmitAsserter;
|