botium-core 1.14.6 → 1.14.8
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/dist/botium-cjs.js +11 -9
- package/dist/botium-cjs.js.map +1 -1
- package/dist/botium-es.js +11 -9
- package/dist/botium-es.js.map +1 -1
- package/package.json +1 -1
- package/src/containers/PluginConnectorContainer.js +5 -5
- package/src/helpers/RetryHelper.js +3 -1
- package/src/scripting/ScriptingProvider.js +2 -2
- package/src/scripting/logichook/asserter/BaseTextAsserter.js +16 -1
package/package.json
CHANGED
|
@@ -44,7 +44,7 @@ module.exports = class PluginConnectorContainer extends BaseContainer {
|
|
|
44
44
|
return super.Build().then(() => promiseRetry((retry, number) => {
|
|
45
45
|
return (this.pluginInstance.Build ? (this.pluginInstance.Build() || Promise.resolve()) : Promise.resolve())
|
|
46
46
|
.catch((err) => {
|
|
47
|
-
if (this.retryHelperBuild.shouldRetry(err)) {
|
|
47
|
+
if (this.retryHelperBuild.shouldRetry(err, number)) {
|
|
48
48
|
debug(`Build trial #${number} failed, retry activated`)
|
|
49
49
|
retry(err)
|
|
50
50
|
} else {
|
|
@@ -65,7 +65,7 @@ module.exports = class PluginConnectorContainer extends BaseContainer {
|
|
|
65
65
|
return super.Start().then(() => promiseRetry((retry, number) => {
|
|
66
66
|
return (this.pluginInstance.Start ? (this.pluginInstance.Start() || Promise.resolve()) : Promise.resolve())
|
|
67
67
|
.catch((err) => {
|
|
68
|
-
if (this.retryHelperStart.shouldRetry(err)) {
|
|
68
|
+
if (this.retryHelperStart.shouldRetry(err, number)) {
|
|
69
69
|
debug(`Start trial #${number} failed, retry activated`)
|
|
70
70
|
retry(err)
|
|
71
71
|
} else {
|
|
@@ -91,7 +91,7 @@ module.exports = class PluginConnectorContainer extends BaseContainer {
|
|
|
91
91
|
return promiseRetry((retry, number) => {
|
|
92
92
|
return (this.pluginInstance.UserSays(mockMsg) || Promise.resolve())
|
|
93
93
|
.catch((err) => {
|
|
94
|
-
if (this.retryHelperUserSays.shouldRetry(err)) {
|
|
94
|
+
if (this.retryHelperUserSays.shouldRetry(err, number)) {
|
|
95
95
|
debug(`UserSays trial #${number} failed, retry activated`)
|
|
96
96
|
retry(err)
|
|
97
97
|
} else {
|
|
@@ -115,7 +115,7 @@ module.exports = class PluginConnectorContainer extends BaseContainer {
|
|
|
115
115
|
return super.Stop().then(() => promiseRetry((retry, number) => {
|
|
116
116
|
return (this.pluginInstance.Stop ? (this.pluginInstance.Stop() || Promise.resolve()) : Promise.resolve())
|
|
117
117
|
.catch((err) => {
|
|
118
|
-
if (this.retryHelperStop.shouldRetry(err)) {
|
|
118
|
+
if (this.retryHelperStop.shouldRetry(err, number)) {
|
|
119
119
|
debug(`Stop trial #${number} failed, retry activated`)
|
|
120
120
|
retry(err)
|
|
121
121
|
} else {
|
|
@@ -142,7 +142,7 @@ module.exports = class PluginConnectorContainer extends BaseContainer {
|
|
|
142
142
|
return promiseRetry((retry, number) => {
|
|
143
143
|
return (this.pluginInstance.Clean ? (this.pluginInstance.Clean() || Promise.resolve()) : Promise.resolve())
|
|
144
144
|
.catch((err) => {
|
|
145
|
-
if (this.retryHelperClean.shouldRetry(err)) {
|
|
145
|
+
if (this.retryHelperClean.shouldRetry(err, number)) {
|
|
146
146
|
debug(`Clean trial #${number} failed, retry activated`)
|
|
147
147
|
retry(err)
|
|
148
148
|
} else {
|
|
@@ -30,8 +30,10 @@ module.exports = class RetryHelper {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
shouldRetry (err) {
|
|
33
|
+
shouldRetry (err, currentRetryCount) {
|
|
34
34
|
if (!err) return false
|
|
35
|
+
if (!this.retrySettings.retries) return false
|
|
36
|
+
if (this.retrySettings.retries < currentRetryCount) return false
|
|
35
37
|
if (this.retryErrorPatterns.length === 0) return true
|
|
36
38
|
const errString = util.inspect(err)
|
|
37
39
|
for (const re of this.retryErrorPatterns) {
|
|
@@ -36,7 +36,7 @@ const p = (retryHelper, fn) => {
|
|
|
36
36
|
if (retryHelper) {
|
|
37
37
|
return promiseRetry((retry, number) => {
|
|
38
38
|
return promise().catch(err => {
|
|
39
|
-
if (retryHelper.shouldRetry(err)) {
|
|
39
|
+
if (retryHelper.shouldRetry(err, number)) {
|
|
40
40
|
debug(`Asserter trial #${number} failed, retry activated`)
|
|
41
41
|
retry(err)
|
|
42
42
|
} else {
|
|
@@ -62,7 +62,7 @@ const pnot = (retryHelper, fn, errTemplate) => {
|
|
|
62
62
|
if (retryHelper) {
|
|
63
63
|
return promiseRetry((retry, number) => {
|
|
64
64
|
return promise().catch(() => {
|
|
65
|
-
if (retryHelper.shouldRetry(errTemplate)) {
|
|
65
|
+
if (retryHelper.shouldRetry(errTemplate, number)) {
|
|
66
66
|
debug(`Asserter trial #${number} failed, !retry activated`)
|
|
67
67
|
retry(errTemplate)
|
|
68
68
|
} else {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
const Capabilities = require('../../../Capabilities')
|
|
1
2
|
const { BotiumError } = require('../../BotiumError')
|
|
3
|
+
const { normalizeText, toString } = require('../../helper')
|
|
4
|
+
const _ = require('lodash')
|
|
2
5
|
|
|
3
6
|
module.exports = class BaseTextAsserter {
|
|
4
7
|
constructor (context, caps = {}, matchFn = null, mode = null, noArgIsJoker = false) {
|
|
@@ -12,6 +15,18 @@ module.exports = class BaseTextAsserter {
|
|
|
12
15
|
this.noArgIsJoker = noArgIsJoker
|
|
13
16
|
}
|
|
14
17
|
|
|
18
|
+
_checkNormalizeText (str) {
|
|
19
|
+
return normalizeText(str, !!this.caps[Capabilities.SCRIPTING_NORMALIZE_TEXT])
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
_normalize (botresponse) {
|
|
23
|
+
if (_.isUndefined(botresponse) || _.isNil(botresponse)) return ''
|
|
24
|
+
if (_.isObject(botresponse) && _.has(botresponse, 'messageText')) {
|
|
25
|
+
return toString(botresponse.messageText) || ''
|
|
26
|
+
}
|
|
27
|
+
return toString(botresponse)
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
_evalText (convo, args, botMsg) {
|
|
16
31
|
let allUtterances = []
|
|
17
32
|
if (this.noArgIsJoker && (!args || args.length === 0)) {
|
|
@@ -24,7 +39,7 @@ module.exports = class BaseTextAsserter {
|
|
|
24
39
|
const founds = []
|
|
25
40
|
const notFounds = []
|
|
26
41
|
for (const utterance of allUtterances) {
|
|
27
|
-
(this.matchFn(botMsg, utterance) ? founds : notFounds).push(utterance)
|
|
42
|
+
(this.matchFn(this._checkNormalizeText(this._normalize(botMsg)), this._checkNormalizeText(utterance)) ? founds : notFounds).push(utterance)
|
|
28
43
|
}
|
|
29
44
|
return { found: (this.mode === 'all' ? notFounds.length === 0 : founds.length > 0), allUtterances, founds, notFounds }
|
|
30
45
|
}
|