ml-testing-toolkit 18.16.0 → 18.16.2-snapshot.0
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.
|
@@ -104,74 +104,59 @@ class InboundEventListener {
|
|
|
104
104
|
|
|
105
105
|
getMessage (clientName, timeout = 5000) {
|
|
106
106
|
return new Promise((resolve, reject) => {
|
|
107
|
-
let timer = null
|
|
108
|
-
|
|
109
|
-
const cleanup = () => {
|
|
110
|
-
if (timer) {
|
|
111
|
-
clearTimeout(timer)
|
|
112
|
-
timer = null
|
|
113
|
-
}
|
|
114
|
-
if (this.eventListeners[clientName] && this.eventListeners[clientName].eventEmitter) {
|
|
115
|
-
this.eventListeners[clientName].eventEmitter.removeAllListeners('newMessage')
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
107
|
if (!this.eventListeners[clientName]) {
|
|
120
108
|
resolve(null)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
// Store the message somewhere
|
|
127
|
-
const retMessage = this.parseMessage(this.eventListeners[clientName].message)
|
|
128
|
-
// Destroy the event listener
|
|
129
|
-
this.destroy(clientName)
|
|
130
|
-
// Return the stored message
|
|
131
|
-
// this.customLog('Returning stored message...')
|
|
132
|
-
if (this.transformer.reverseTransform) {
|
|
133
|
-
this.transformer.reverseTransform(retMessage).then((result) => {
|
|
134
|
-
resolve(result)
|
|
135
|
-
}).catch((err) => {
|
|
136
|
-
this.customLog('Error transforming message: ' + err)
|
|
137
|
-
resolve(retMessage)
|
|
138
|
-
})
|
|
139
|
-
} else {
|
|
140
|
-
resolve(retMessage)
|
|
141
|
-
}
|
|
142
|
-
return
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
// Listen for the new message for some time
|
|
146
|
-
// Set the timer
|
|
147
|
-
timer = setTimeout(() => {
|
|
148
|
-
try {
|
|
149
|
-
this.customLog('Error: Timeout')
|
|
109
|
+
} else {
|
|
110
|
+
// Check for the message received already
|
|
111
|
+
if (this.eventListeners[clientName].message !== null) {
|
|
112
|
+
// Store the message somewhere
|
|
113
|
+
const retMessage = this.parseMessage(this.eventListeners[clientName].message)
|
|
150
114
|
// Destroy the event listener
|
|
151
115
|
this.destroy(clientName)
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
const retMessage = this.parseMessage(message)
|
|
163
|
-
|
|
164
|
-
if (this.transformer.reverseTransform) {
|
|
165
|
-
this.transformer.reverseTransform(retMessage).then((result) => {
|
|
166
|
-
resolve(result)
|
|
167
|
-
}).catch((err) => {
|
|
168
|
-
this.customLog('Error transforming message: ' + err)
|
|
116
|
+
// Return the stored message
|
|
117
|
+
// this.customLog('Returning stored message...')
|
|
118
|
+
if (this.transformer.reverseTransform) {
|
|
119
|
+
this.transformer.reverseTransform(retMessage).then((result) => {
|
|
120
|
+
resolve(result)
|
|
121
|
+
}).catch((err) => {
|
|
122
|
+
this.customLog('Error transforming message: ' + err)
|
|
123
|
+
resolve(retMessage)
|
|
124
|
+
})
|
|
125
|
+
} else {
|
|
169
126
|
resolve(retMessage)
|
|
170
|
-
}
|
|
127
|
+
}
|
|
171
128
|
} else {
|
|
172
|
-
|
|
129
|
+
// Listen for the new message for some time
|
|
130
|
+
let timer = null
|
|
131
|
+
// Set the timer
|
|
132
|
+
timer = setTimeout(() => {
|
|
133
|
+
try {
|
|
134
|
+
this.customLog('Error: Timeout')
|
|
135
|
+
// Destroy the event listener
|
|
136
|
+
this.destroy(clientName)
|
|
137
|
+
resolve(null)
|
|
138
|
+
} catch (err) {
|
|
139
|
+
reject(err)
|
|
140
|
+
}
|
|
141
|
+
}, timeout)
|
|
142
|
+
// Listen for message
|
|
143
|
+
this.eventListeners[clientName].eventEmitter.once('newMessage', (message) => {
|
|
144
|
+
clearTimeout(timer)
|
|
145
|
+
this.destroy(clientName)
|
|
146
|
+
const retMessage = this.parseMessage(message)
|
|
147
|
+
if (this.transformer.reverseTransform) {
|
|
148
|
+
this.transformer.reverseTransform(retMessage).then((result) => {
|
|
149
|
+
resolve(result)
|
|
150
|
+
}).catch((err) => {
|
|
151
|
+
this.customLog('Error transforming message: ' + err)
|
|
152
|
+
resolve(retMessage)
|
|
153
|
+
})
|
|
154
|
+
} else {
|
|
155
|
+
resolve(retMessage)
|
|
156
|
+
}
|
|
157
|
+
})
|
|
173
158
|
}
|
|
174
|
-
}
|
|
159
|
+
}
|
|
175
160
|
})
|
|
176
161
|
}
|
|
177
162
|
|
|
@@ -53,8 +53,6 @@ class WebSocketClientManager {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
connect (url, clientName, timeout = 15000) {
|
|
56
|
-
this.customLog(`Connecting to WebSocket URL: ${url} with client name: ${clientName} and timeout: ${timeout}ms`)
|
|
57
|
-
|
|
58
56
|
const tlsOptions = { rejectUnauthorized: false }
|
|
59
57
|
const urlObject = new URL(url)
|
|
60
58
|
if (this.userConfig.CLIENT_MUTUAL_TLS_ENABLED) {
|
|
@@ -109,48 +107,41 @@ class WebSocketClientManager {
|
|
|
109
107
|
|
|
110
108
|
getMessage (clientName, timeout = 5000) {
|
|
111
109
|
return new Promise((resolve, reject) => {
|
|
112
|
-
let timer = null
|
|
113
|
-
|
|
114
|
-
const cleanup = () => {
|
|
115
|
-
if (timer) {
|
|
116
|
-
clearTimeout(timer)
|
|
117
|
-
timer = null
|
|
118
|
-
}
|
|
119
|
-
if (this.ws[clientName] && this.ws[clientName].eventEmitter) {
|
|
120
|
-
this.ws[clientName].eventEmitter.removeAllListeners('newMessage')
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
110
|
if (!this.ws[clientName]) {
|
|
125
111
|
resolve(null)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
this.disconnect(clientName)
|
|
133
|
-
resolve(retMessage)
|
|
134
|
-
return
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Set timeout
|
|
138
|
-
timer = setTimeout(() => {
|
|
139
|
-
try {
|
|
140
|
-
cleanup()
|
|
112
|
+
} else {
|
|
113
|
+
// Check for the message received already
|
|
114
|
+
if (this.ws[clientName].message !== null) {
|
|
115
|
+
// Store the message somewhere
|
|
116
|
+
const retMessage = this.parseMessage(this.ws[clientName].message)
|
|
117
|
+
// Disconnect the websocket connection
|
|
141
118
|
this.disconnect(clientName)
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
119
|
+
// Return the stored message
|
|
120
|
+
// this.customLog('Returning stored message...')
|
|
121
|
+
resolve(retMessage)
|
|
122
|
+
} else {
|
|
123
|
+
// Listen for the new message for some time
|
|
124
|
+
let timer = null
|
|
125
|
+
// Set the timer
|
|
126
|
+
timer = setTimeout(() => {
|
|
127
|
+
try {
|
|
128
|
+
this.ws[clientName].eventEmitter.removeAllListeners('newMessage')
|
|
129
|
+
// Disconnect the websocket connection
|
|
130
|
+
this.disconnect(clientName)
|
|
131
|
+
resolve(null)
|
|
132
|
+
} catch (err) {
|
|
133
|
+
reject(err)
|
|
134
|
+
}
|
|
135
|
+
}, timeout)
|
|
136
|
+
// Listen for message
|
|
137
|
+
this.ws[clientName].eventEmitter.once('newMessage', (message) => {
|
|
138
|
+
clearTimeout(timer)
|
|
139
|
+
this.ws[clientName].eventEmitter.removeAllListeners('newMessage')
|
|
140
|
+
this.disconnect(clientName)
|
|
141
|
+
resolve(this.parseMessage(message))
|
|
142
|
+
})
|
|
145
143
|
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
// Listen for message
|
|
149
|
-
this.ws[clientName].eventEmitter.once('newMessage', (message) => {
|
|
150
|
-
cleanup()
|
|
151
|
-
this.disconnect(clientName)
|
|
152
|
-
resolve(this.parseMessage(message))
|
|
153
|
-
})
|
|
144
|
+
}
|
|
154
145
|
})
|
|
155
146
|
}
|
|
156
147
|
|
|
@@ -164,10 +155,7 @@ class WebSocketClientManager {
|
|
|
164
155
|
|
|
165
156
|
disconnect (clientName) {
|
|
166
157
|
if (this.ws[clientName]) {
|
|
167
|
-
|
|
168
|
-
this.ws[clientName].client.removeAllListeners()
|
|
169
|
-
this.ws[clientName].client.close()
|
|
170
|
-
}
|
|
158
|
+
this.ws[clientName].client.close()
|
|
171
159
|
if (this.ws[clientName].eventEmitter) {
|
|
172
160
|
this.ws[clientName].eventEmitter.removeAllListeners()
|
|
173
161
|
}
|
|
@@ -182,10 +170,7 @@ class WebSocketClientManager {
|
|
|
182
170
|
|
|
183
171
|
disconnectAll () {
|
|
184
172
|
for (const clientName in this.ws) {
|
|
185
|
-
|
|
186
|
-
this.ws[clientName].client.removeAllListeners()
|
|
187
|
-
this.ws[clientName].client.close()
|
|
188
|
-
}
|
|
173
|
+
this.ws[clientName].client.close()
|
|
189
174
|
if (this.ws[clientName].eventEmitter) {
|
|
190
175
|
this.ws[clientName].eventEmitter.removeAllListeners()
|
|
191
176
|
}
|
|
@@ -198,6 +183,13 @@ class WebSocketClientManager {
|
|
|
198
183
|
}
|
|
199
184
|
return true
|
|
200
185
|
}
|
|
186
|
+
|
|
187
|
+
clearAllTimers () {
|
|
188
|
+
Object.keys(this.timers).forEach((clientName) => {
|
|
189
|
+
clearTimeout(this.timers[clientName])
|
|
190
|
+
delete this.timers[clientName]
|
|
191
|
+
})
|
|
192
|
+
}
|
|
201
193
|
}
|
|
202
194
|
|
|
203
195
|
module.exports = {
|