codeforequity-at / botium-core

The Selenium for Chatbots - Bots Testing Bots
https://www.botium.ai
MIT License
231 stars 64 forks source link

botium reports null response; directline3 plugin missing #230

Closed jeffpapewalmart closed 5 years ago

jeffpapewalmart commented 5 years ago

Describe the bug Botium reports seeing - "null" when actual text is expected. When I manually interact with the chat bot, I see the expected text.

To Reproduce

  1. Install botium-cli npm install -g botium-cli
  2. Install botium-directline3 npm install -g botium-connector-directline3
  3. create file botium.json with contents: { "botium": { "Capabilities": { "PROJECTNAME": "W2 Former bot", "CONTAINERMODE": "directline3", "DIRECTLINE3_SECRET": , "DIRECTLINE3_WEBSOCKET": false, "DIRECTLINE3_POLLINGINTERVAL": 1000 }, "Sources": {}, "Envs": {} } }
  4. create conversation file: where_will_i_get_my_w-2.convo.txt W2 Former Bot Where will I get my W-2 Associate executes: Where will I get my W-2

bot default

Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.

bot default

If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/

bot default

Before we start, I have to do this legal thing.

bot default

Please confirm that you will not share highly sensitive information with me, such as social security numbers.

me default

Agree

bot default

Let’s get started!

bot default

Please select one of the following options.

me default

Where will I get my W-2

bot default

No problem, I can help you with that!

  1. Execute command: botium-cli run --config test/botium.json --convos test/convos/where_will_i_get_my_w-2/ --verbose 2>&1 | tee bot_output_3.txt

Expected behavior The chatbot is publicly available at: https://w2former.azurewebsites.net/

I created the conversation file by manually interacting with the bot; consequently, I expect the file to be successfully processed. When I remove the last lines 29-30 of the conversation above, the file is successfully processed and passed the test.

I also see issues when I try to use: "DIRECTLINE3_WEBSOCKET": true says cannot find module "directline3", but the directline3 module was installed.


2019-02-18T21:52:52.034Z botium-BotDriver Build - Envs : { IS_BOTIUM_CONTAINER: true } 2019-02-18T21:52:52.043Z botium-PluginConnectorContainer Loading Botium plugin from directline3 failed - { Error: Cannot find module 'directline3' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:613:15) at Function.Module._load (internal/modules/cjs/loader.js:539:25) at Module.require (internal/modules/cjs/loader.js:667:17) at require (internal/modules/cjs/helpers.js:20:18) at tryLoadPlugin (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:16:20) at Validate.Validate.then (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:45:29) code: 'MODULE_NOT_FOUND' } 2019-02-18T21:52:52.078Z botium-PluginConnectorContainer Botium plugin botium-connector-directline3 loaded 2019-02-18T21:52:52.078Z botium-connector-directline3 Validate called 2019-02-18T21:52:52.078Z botium-connector-directline3 Build called 2019-02-18T21:52:52.079Z botium-connector-directline3 Start called 2019-02-18T21:52:52.099Z botium-connector-directline3 Directline Connection Status: 1 / Connecting 2019-02-18T21:52:52.099Z botium-cli-run running testcase W2 Former Bot Where will I get my W-2 2019-02-18T21:52:52.100Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:52:52.966Z botium-connector-directline3 Directline Connection Status: 2 / Online 2019-02-18T21:52:53.736Z botium-connector-directline3 received message { "type": "message", "id": "Fldcns4xldD6OkSiWLy2dO|0000000", "timestamp": "2019-02-18T21:52:53.1578032Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "Fldcns4xldD6OkSiWLy2dO" }, "text": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "replyToId": "Ju6HtTfGBAD" }

=====

Screenshots If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

Additional context m-c02x7peqjg5j:botium-box-basic-dist j0p01ex$ npm list | grep -e "bot" botium-box@1.1.3 /Users/j0p01ex/projects/botium-box/botium-box-basic-dist ├─┬ botium-bindings@2.0.8 │ ├─┬ botium-core@1.4.8 ├─┬ botium-cli@0.0.45 │ ├─┬ botium-connector-alexa-smapi@0.0.3 │ ├─┬ botium-connector-botkit@0.0.3 │ ├─┬ botium-connector-botpress@0.0.4 │ ├─┬ botium-connector-dialogflow@0.0.5 │ ├─┬ botium-connector-directline3@0.0.7 │ │ ├─┬ botframework-directlinejs@0.9.17 │ ├─┬ botium-connector-echo@0.0.1 │ ├─┬ botium-connector-fbpagereceiver@0.0.2 │ ├─┬ botium-connector-koreai-webhook@0.0.2 │ ├─┬ botium-connector-luis@0.0.1 │ ├─┬ botium-connector-watson@0.0.5 │ ├─┬ botium-connector-webdriverio@0.1.0 │ ├── botium-core@1.4.8 deduped npm ERR! missing: esprima@git+https://github.com/codeforequity-at/jsonpath.git, required by botium-cli@0.0.45 npm ERR! extraneous: jsonpath@1.0.0 /Users/j0p01ex/projects/botium-box/botium-box-basic-dist/node_modules/botium-cli/nodemodules/jsonpath m-c02x7peqjg5j:botium-box-basic-dist j0p01ex$ === verbose output file with last lines included: 2019-02-18T21:15:06.758Z botium-cli Using Botium configuration file test/botium.json 2019-02-18T21:15:06.761Z botium-cli-run command options: { : [ 'run' ], help: false, h: false, version: false, V: false, config: 'test/botium.json', c: 'test/botium.json', convos: [ 'test/convos/where_will_i_get_my_w-2/' ], C: [ 'test/convos/where_will_i_get_my_w-2/' ], verbose: true, v: true, output: 'spec', testsuitename: 'Botium Test-Suite', n: 'Botium Test-Suite', expandutterances: false, timeout: 60, '$0': '/usr/local/bin/botium-cli', filter: undefined, 'reporter-options': undefined } 2019-02-18T21:15:06.761Z botium-cli-run Mocha Reporter "spec", options: undefined 2019-02-18T21:15:06.761Z botium-BotDriver Loaded Botium configuration file ./botium.json 2019-02-18T21:15:06.762Z botium-BotDriver Loaded Botium configuration file test/botium.json 2019-02-18T21:15:06.762Z botium-BotDriver Changed capability CONFIG to "test/botium.json" using environment variables. 2019-02-18T21:15:06.762Z botium-BotDriver BuildCompiler: Capabilites: { PROJECTNAME: 'W2 Former bot', TEMPDIR: 'botiumwork', CLEANUPTEMPDIR: true, WAITFORBOTTIMEOUT: 10000, SIMULATE_WRITING_SPEED: false, DOCKERCOMPOSEPATH: 'docker-compose', DOCKERMACHINEPATH: 'docker-machine', DOCKERMACHINE: false, DOCKERIMAGE: 'node:boron', DOCKERUNIQUECONTAINERNAMES: false, DOCKERSYSLOGPORT_RANGE: '47100-47299', BOT_HEALTH_STATUS: 200, SLACK_PUBLISHPORT_RANGE: '46100-46299', FACEBOOK_PUBLISHPORT_RANGE: '46300-46499', FACEBOOK_SEND_DELIVERY_CONFIRMATION: true, BOTFRAMEWORK_PUBLISHPORT_RANGE: '46500-46699', BOTFRAMEWORK_WEBHOOK_PORT: 3978, BOTFRAMEWORK_WEBHOOK_PATH: 'api/messages', BOTFRAMEWORK_CHANNEL_ID: 'facebook', SIMPLEREST_PING_RETRIES: 6, SIMPLEREST_PING_TIMEOUT: 10000, SIMPLEREST_PING_VERB: 'GET', SIMPLEREST_METHOD: 'GET', WEBSPEECH_SERVER_PORT: 46050, WEBSPEECH_LANGUAGE: 'en-US', WEBSPEECH_CLOSEBROWSER: true, SCRIPTING_TXT_EOL: '\n', SCRIPTING_XLSX_EOL_SPLIT: '\r', SCRIPTING_XLSX_EOL_WRITE: '\r\n', SCRIPTING_XLSX_STARTROW: 1, SCRIPTING_XLSX_STARTCOL: 'A', SCRIPTING_NORMALIZE_TEXT: true, SCRIPTING_ENABLE_MEMORY: false, SCRIPTING_MATCHING_MODE: 'includeLowerCase', SCRIPTING_UTTEXPANSION_MODE: 'all', SCRIPTING_UTTEXPANSION_RANDOM_COUNT: 1, SCRIPTING_UTTEXPANSION_INCOMPREHENSION: 'INCOMPREHENSION', ASSERTERS: [], LOGIC_HOOKS: [], USER_INPUTS: [], CONTAINERMODE: 'directline3', DIRECTLINE3_SECRET: '', DIRECTLINE3_WEBSOCKET: false, DIRECTLINE3_POLLINGINTERVAL: 1000, CONFIG: 'test/botium.json' } 2019-02-18T21:15:06.957Z botium-ScriptingProvider Using matching mode: includeLowerCase 2019-02-18T21:15:06.957Z botium-asserterUtils Loaded Default asserter - [ 'BUTTONS', 'MEDIA', 'PAUSE_ASSERTER', 'ENTITIES', 'ENTITY_VALUES', 'INTENT', 'INTENT_CONFIDENCE' ] 2019-02-18T21:15:06.957Z botium-asserterUtils Loaded Default logic hook - [ 'PAUSE', 'WAITFORBOT' ] 2019-02-18T21:15:06.958Z botium-asserterUtils Loaded Default user input - [ 'BUTTON', 'MEDIA' ] 2019-02-18T21:15:06.961Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found filenames: where_will_i_get_my_w-2.convo.txt 2019-02-18T21:15:06.964Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found convos: 1 W2 Former Bot Where will I get my W-2 (Associate executes: Where will I get my W-2) ({ filename: 'where_will_i_get_my_w-2.convo.txt' }): Line 4: #bot - Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. | Line 7: #bot - If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ | Line 11: #bot - Before we start, I have to do this legal thing. | Line 14: #bot - Please confirm that you will not share highly sensitive information with me, such as social security numbers. | Line 17: #me - Agree | Line 20: #bot - Let’s get started! | Line 23: #bot - Please select one of the following options. | Line 26: #me - Where will I get my W-2 | Line 29: #bot - No problem, I can help you with that! 2019-02-18T21:15:06.964Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found utterances:

2019-02-18T21:15:06.964Z botium-cli-run ready reading convos (1), expanding convos ... 2019-02-18T21:15:06.964Z botium-ScriptingProvider ExpandConvos - Using utterances expansion mode: all 2019-02-18T21:15:06.964Z botium-cli-run ready expanding convos and utterances, number of test cases: (1). 2019-02-18T21:15:06.966Z botium-cli-run adding test case W2 Former Bot Where will I get my W-2 (from: { filename: 'where_will_i_get_my_w-2.convo.txt' })

Botium Test-Suite 2019-02-18T21:15:06.974Z botium-BotDriver Build - Capabilites: { PROJECTNAME: 'W2 Former bot', TEMPDIR: 'botiumwork', CLEANUPTEMPDIR: true, WAITFORBOTTIMEOUT: 10000, SIMULATE_WRITING_SPEED: false, DOCKERCOMPOSEPATH: 'docker-compose', DOCKERMACHINEPATH: 'docker-machine', DOCKERMACHINE: false, DOCKERIMAGE: 'node:boron', DOCKERUNIQUECONTAINERNAMES: false, DOCKERSYSLOGPORT_RANGE: '47100-47299', BOT_HEALTH_STATUS: 200, SLACK_PUBLISHPORT_RANGE: '46100-46299', FACEBOOK_PUBLISHPORT_RANGE: '46300-46499', FACEBOOK_SEND_DELIVERY_CONFIRMATION: true, BOTFRAMEWORK_PUBLISHPORT_RANGE: '46500-46699', BOTFRAMEWORK_WEBHOOK_PORT: 3978, BOTFRAMEWORK_WEBHOOK_PATH: 'api/messages', BOTFRAMEWORK_CHANNEL_ID: 'facebook', SIMPLEREST_PING_RETRIES: 6, SIMPLEREST_PING_TIMEOUT: 10000, SIMPLEREST_PING_VERB: 'GET', SIMPLEREST_METHOD: 'GET', WEBSPEECH_SERVER_PORT: 46050, WEBSPEECH_LANGUAGE: 'en-US', WEBSPEECH_CLOSEBROWSER: true, SCRIPTING_TXT_EOL: '\n', SCRIPTING_XLSX_EOL_SPLIT: '\r', SCRIPTING_XLSX_EOL_WRITE: '\r\n', SCRIPTING_XLSX_STARTROW: 1, SCRIPTING_XLSX_STARTCOL: 'A', SCRIPTING_NORMALIZE_TEXT: true, SCRIPTING_ENABLE_MEMORY: false, SCRIPTING_MATCHING_MODE: 'includeLowerCase', SCRIPTING_UTTEXPANSION_MODE: 'all', SCRIPTING_UTTEXPANSION_RANDOM_COUNT: 1, SCRIPTING_UTTEXPANSION_INCOMPREHENSION: 'INCOMPREHENSION', ASSERTERS: [], LOGIC_HOOKS: [], USER_INPUTS: [], CONTAINERMODE: 'directline3', DIRECTLINE3_SECRET: '', DIRECTLINE3_WEBSOCKET: false, DIRECTLINE3_POLLINGINTERVAL: 1000, CONFIG: 'test/botium.json' } 2019-02-18T21:15:06.974Z botium-BotDriver Build - Sources : { LOCALPATH: '.', GITPATH: 'git', GITBRANCH: 'master', GITDIR: '.' } 2019-02-18T21:15:06.974Z botium-BotDriver Build - Envs : { IS_BOTIUM_CONTAINER: true } 2019-02-18T21:15:06.983Z botium-PluginConnectorContainer Loading Botium plugin from directline3 failed - { Error: Cannot find module 'directline3' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:613:15) at Function.Module._load (internal/modules/cjs/loader.js:539:25) at Module.require (internal/modules/cjs/loader.js:667:17) at require (internal/modules/cjs/helpers.js:20:18) at tryLoadPlugin (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:16:20) at Validate.Validate.then (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:45:29) code: 'MODULE_NOT_FOUND' } 2019-02-18T21:15:07.016Z botium-PluginConnectorContainer Botium plugin botium-connector-directline3 loaded 2019-02-18T21:15:07.016Z botium-connector-directline3 Validate called 2019-02-18T21:15:07.016Z botium-connector-directline3 Build called 2019-02-18T21:15:07.017Z botium-connector-directline3 Start called 2019-02-18T21:15:07.036Z botium-connector-directline3 Directline Connection Status: 1 / Connecting 2019-02-18T21:15:07.036Z botium-cli-run running testcase W2 Former Bot Where will I get my W-2 2019-02-18T21:15:07.038Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:07.818Z botium-connector-directline3 Directline Connection Status: 2 / Online 2019-02-18T21:15:08.722Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000000", "timestamp": "2019-02-18T21:15:07.9097433Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "replyToId": "5w7KIXE5hV2" } 2019-02-18T21:15:08.723Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000001", "timestamp": "2019-02-18T21:15:08.1205585Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "replyToId": "5w7KIXE5hV2" } 2019-02-18T21:15:08.723Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000002", "timestamp": "2019-02-18T21:15:08.3393387Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Before we start, I have to do this legal thing.", "replyToId": "5w7KIXE5hV2" } 2019-02-18T21:15:08.723Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000003", "timestamp": "2019-02-18T21:15:08.55684Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "inputHint": "expectingInput", "suggestedActions": { "actions": [ { "type": "imBack", "title": "Agree", "value": "Agree" }, { "type": "imBack", "title": "Disagree", "value": "Disagree" } ] }, "replyToId": "5w7KIXE5hV2" } 2019-02-18T21:15:08.724Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000000", "timestamp": "2019-02-18T21:15:07.9097433Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "replyToId": "5w7KIXE5hV2" }, "media": [], "buttons": [], "cards": [], "messageText": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "channel": "default" } 2019-02-18T21:15:08.725Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 4 BOT: Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. = Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. ... 2019-02-18T21:15:08.725Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:08.726Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000001", "timestamp": "2019-02-18T21:15:08.1205585Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "replyToId": "5w7KIXE5hV2" }, "media": [], "buttons": [], "cards": [], "messageText": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "channel": "default" } 2019-02-18T21:15:08.726Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 7 BOT: If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ = If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ ... 2019-02-18T21:15:08.726Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:08.726Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000002", "timestamp": "2019-02-18T21:15:08.3393387Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Before we start, I have to do this legal thing.", "replyToId": "5w7KIXE5hV2" }, "media": [], "buttons": [], "cards": [], "messageText": "Before we start, I have to do this legal thing.", "channel": "default" } 2019-02-18T21:15:08.726Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 11 BOT: Before we start, I have to do this legal thing. = Before we start, I have to do this legal thing. ... 2019-02-18T21:15:08.726Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:08.726Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000003", "timestamp": "2019-02-18T21:15:08.55684Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "inputHint": "expectingInput", "suggestedActions": { "actions": [ { "type": "imBack", "title": "Agree", "value": "Agree" }, { "type": "imBack", "title": "Disagree", "value": "Disagree" } ] }, "replyToId": "5w7KIXE5hV2" }, "media": [], "buttons": [ { "text": "Agree", "payload": "Agree" }, { "text": "Disagree", "payload": "Disagree" } ], "cards": [], "messageText": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "channel": "default" } 2019-02-18T21:15:08.726Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 14 BOT: Please confirm that you will not share highly sensitive information with me, such as social security numbers. = Please confirm that you will not share highly sensitive information with me, such as social security numbers. ... 2019-02-18T21:15:08.727Z botium-Convo W2 Former Bot Where will I get my W-2/Line 17: user says { "sender": "me", "channel": "default", "messageText": "Agree", "stepTag": "Line 17", "not": false, "asserters": [], "logicHooks": [], "userInputs": [] } 2019-02-18T21:15:08.727Z botium-connector-directline3 UserSays called 2019-02-18T21:15:08.727Z botium-connector-directline3 Posting activity { "from": { "id": "me" }, "type": "message", "text": "Agree" } 2019-02-18T21:15:10.437Z botium-connector-directline3 Posted activity, assigned ID 7Q3mjreG8adIl3grebrH0E|0000004 2019-02-18T21:15:10.438Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:10.651Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000005", "timestamp": "2019-02-18T21:15:09.7355978Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Let’s get started!", "inputHint": "acceptingInput", "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" } 2019-02-18T21:15:10.651Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000006", "timestamp": "2019-02-18T21:15:09.938729Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Please select one of the following options.", "inputHint": "acceptingInput", "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" } 2019-02-18T21:15:10.652Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000007", "timestamp": "2019-02-18T21:15:10.2143599Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "attachments": [ { "contentType": "application/vnd.microsoft.card.hero", "content": { "buttons": [ { "type": "imBack", "title": "Where will I get my W-2", "value": "Where will I get my W-2" }, { "type": "imBack", "title": "Change my Address", "value": "Change my Address" }, { "type": "imBack", "title": "Electronic W-2", "value": "Electronic W-2" }, { "type": "imBack", "title": "W-2 Validation", "value": "W-2 Validation" }, { "type": "imBack", "title": "More W-2 Questions", "value": "More W-2 Questions" } ] } } ], "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" } 2019-02-18T21:15:10.652Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000005", "timestamp": "2019-02-18T21:15:09.7355978Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Let’s get started!", "inputHint": "acceptingInput", "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" }, "media": [], "buttons": [], "cards": [], "messageText": "Let’s get started!", "channel": "default" } 2019-02-18T21:15:10.652Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 20 (Line 17: #me - Agree) BOT: Let’s get started! = Let’s get started! ... 2019-02-18T21:15:10.653Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:10.653Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000006", "timestamp": "2019-02-18T21:15:09.938729Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "Please select one of the following options.", "inputHint": "acceptingInput", "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" }, "media": [], "buttons": [], "cards": [], "messageText": "Please select one of the following options.", "channel": "default" } 2019-02-18T21:15:10.653Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 23 (Line 17: #me - Agree) BOT: Please select one of the following options. = Please select one of the following options. ... 2019-02-18T21:15:10.653Z botium-Convo W2 Former Bot Where will I get my W-2/Line 26: user says { "sender": "me", "channel": "default", "messageText": "Where will I get my W-2", "stepTag": "Line 26", "not": false, "asserters": [], "logicHooks": [], "userInputs": [] } 2019-02-18T21:15:10.653Z botium-connector-directline3 UserSays called 2019-02-18T21:15:10.653Z botium-connector-directline3 Posting activity { "from": { "id": "me" }, "type": "message", "text": "Where will I get my W-2" } 2019-02-18T21:15:11.627Z botium-connector-directline3 received message { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000009", "timestamp": "2019-02-18T21:15:11.3168165Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "text": "No problem, I can help you with that!", "inputHint": "acceptingInput", "replyToId": "7Q3mjreG8adIl3grebrH0E|0000008" } 2019-02-18T21:15:11.766Z botium-connector-directline3 Posted activity, assigned ID 7Q3mjreG8adIl3grebrH0E|0000008 2019-02-18T21:15:11.767Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:15:11.767Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "7Q3mjreG8adIl3grebrH0E|0000007", "timestamp": "2019-02-18T21:15:10.2143599Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "7Q3mjreG8adIl3grebrH0E" }, "attachments": [ { "contentType": "application/vnd.microsoft.card.hero", "content": { "buttons": [ { "type": "imBack", "title": "Where will I get my W-2", "value": "Where will I get my W-2" }, { "type": "imBack", "title": "Change my Address", "value": "Change my Address" }, { "type": "imBack", "title": "Electronic W-2", "value": "Electronic W-2" }, { "type": "imBack", "title": "W-2 Validation", "value": "W-2 Validation" }, { "type": "imBack", "title": "More W-2 Questions", "value": "More W-2 Questions" } ] } } ], "replyToId": "7Q3mjreG8adIl3grebrH0E|0000004" }, "media": [], "buttons": [], "cards": [ { "buttons": [ { "text": "Where will I get my W-2", "payload": "Where will I get my W-2" }, { "text": "Change my Address", "payload": "Change my Address" }, { "text": "Electronic W-2", "payload": "Electronic W-2" }, { "text": "W-2 Validation", "payload": "W-2 Validation" }, { "text": "More W-2 Questions", "payload": "More W-2 Questions" } ] } ], "messageText": null, "channel": "default" } 2019-02-18T21:15:11.767Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 29 (Line 26: #me - Where will I get my W-2) BOT: null = No problem, I can help you with that! ... 2019-02-18T21:15:11.769Z botium-cli-run W2 Former Bot Where will I get my W-2 failed: { TranscriptError: Error: W2 Former Bot Where will I get my W-2/Line 29: Expected bot response (on Line 26: #me - Where will I get my W-2) "null" to match one of "No problem, I can help you with that!" at async.waterfall (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:173:25) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:473:16 at next (/usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:5329:29) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:969:16 at runConversation (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:157:15) at async.mapSeries (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:331:9) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:1140:9 at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:473:16 at iterateeCallback (/usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:988:17) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:969:16 name: 'TranscriptError', transcript: Transcript { steps: [ [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep], [TranscriptStep] ], scriptingMemory: {}, convoBegin: 2019-02-18T21:15:07.037Z, convoEnd: 2019-02-18T21:15:11.767Z, err: Error: W2 Former Bot Where will I get my W-2/Line 29: Expected bot response (on Line 26: #me - Where will I get my W-2) "null" to match one of "No problem, I can help you with that!" at ScriptingProvider.assertBotResponse (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/ScriptingProvider.js:80:17) at scriptingEvents.onBotStart.then.then (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:281:42) at processTicksAndRejections (internal/process/next_tick.js:81:5) } } 1) W2 Former Bot Where will I get my W-2 2019-02-18T21:15:11.771Z botium-connector-directline3 Stop called 2019-02-18T21:15:11.771Z botium-connector-directline3 unsubscribing from directline activity subscription 2019-02-18T21:15:11.772Z botium-connector-directline3 unsubscribing from directline connectionstatus subscription 2019-02-18T21:15:11.772Z botium-connector-directline3 Clean called 2019-02-18T21:15:11.773Z botium-BaseContainer Cleanup rimrafing temp dir /Users/j0p01ex/projects/botium-box/botium-box-basic-dist/botiumwork/W2-Former-bot-20190218-151506-55HNR

0 passing (5s) 1 failing

1) Botium Test-Suite W2 Former Bot Where will I get my W-2: TranscriptError: Error: W2 Former Bot Where will I get my W-2/Line 29: Expected bot response (on Line 26: #me - Where will I get my W-2) "null" to match one of "No problem, I can help you with that!" at async.waterfall (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:173:25) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:473:16 at next (/usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:5329:29) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:969:16 at runConversation (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:157:15) at async.mapSeries (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/scripting/Convo.js:331:9) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:1140:9 at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:473:16 at iterateeCallback (/usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:988:17) at /usr/local/lib/node_modules/botium-cli/node_modules/async/dist/async.js:969:16

==== verbose output with last lines excluded: 2019-02-18T21:33:02.829Z botium-cli Using Botium configuration file test/botium.json 2019-02-18T21:33:02.832Z botium-cli-run command options: { _: [ 'run' ], help: false, h: false, version: false, V: false, config: 'test/botium.json', c: 'test/botium.json', convos: [ 'test/convos/where_will_i_get_my_w-2/' ], C: [ 'test/convos/where_will_i_get_my_w-2/' ], verbose: true, v: true, output: 'spec', testsuitename: 'Botium Test-Suite', n: 'Botium Test-Suite', expandutterances: false, timeout: 60, '$0': '/usr/local/bin/botium-cli', filter: undefined, 'reporter-options': undefined } 2019-02-18T21:33:02.832Z botium-cli-run Mocha Reporter "spec", options: undefined 2019-02-18T21:33:02.833Z botium-BotDriver Loaded Botium configuration file ./botium.json 2019-02-18T21:33:02.833Z botium-BotDriver Loaded Botium configuration file test/botium.json 2019-02-18T21:33:02.834Z botium-BotDriver Changed capability CONFIG to "test/botium.json" using environment variables. 2019-02-18T21:33:02.834Z botium-BotDriver BuildCompiler: Capabilites: { PROJECTNAME: 'W2 Former bot', TEMPDIR: 'botiumwork', CLEANUPTEMPDIR: true, WAITFORBOTTIMEOUT: 10000, SIMULATE_WRITING_SPEED: false, DOCKERCOMPOSEPATH: 'docker-compose', DOCKERMACHINEPATH: 'docker-machine', DOCKERMACHINE: false, DOCKERIMAGE: 'node:boron', DOCKERUNIQUECONTAINERNAMES: false, DOCKERSYSLOGPORT_RANGE: '47100-47299', BOT_HEALTH_STATUS: 200, SLACK_PUBLISHPORT_RANGE: '46100-46299', FACEBOOK_PUBLISHPORT_RANGE: '46300-46499', FACEBOOK_SEND_DELIVERY_CONFIRMATION: true, BOTFRAMEWORK_PUBLISHPORT_RANGE: '46500-46699', BOTFRAMEWORK_WEBHOOK_PORT: 3978, BOTFRAMEWORK_WEBHOOK_PATH: 'api/messages', BOTFRAMEWORK_CHANNEL_ID: 'facebook', SIMPLEREST_PING_RETRIES: 6, SIMPLEREST_PING_TIMEOUT: 10000, SIMPLEREST_PING_VERB: 'GET', SIMPLEREST_METHOD: 'GET', WEBSPEECH_SERVER_PORT: 46050, WEBSPEECH_LANGUAGE: 'en-US', WEBSPEECH_CLOSEBROWSER: true, SCRIPTING_TXT_EOL: '\n', SCRIPTING_XLSX_EOL_SPLIT: '\r', SCRIPTING_XLSX_EOL_WRITE: '\r\n', SCRIPTING_XLSX_STARTROW: 1, SCRIPTING_XLSX_STARTCOL: 'A', SCRIPTING_NORMALIZE_TEXT: true, SCRIPTING_ENABLE_MEMORY: false, SCRIPTING_MATCHING_MODE: 'includeLowerCase', SCRIPTING_UTTEXPANSION_MODE: 'all', SCRIPTING_UTTEXPANSION_RANDOM_COUNT: 1, SCRIPTING_UTTEXPANSION_INCOMPREHENSION: 'INCOMPREHENSION', ASSERTERS: [], LOGIC_HOOKS: [], USER_INPUTS: [], CONTAINERMODE: 'directline3', DIRECTLINE3_SECRET: '', DIRECTLINE3_WEBSOCKET: false, DIRECTLINE3_POLLINGINTERVAL: 1000, CONFIG: 'test/botium.json' } 2019-02-18T21:33:03.034Z botium-ScriptingProvider Using matching mode: includeLowerCase 2019-02-18T21:33:03.035Z botium-asserterUtils Loaded Default asserter - [ 'BUTTONS', 'MEDIA', 'PAUSE_ASSERTER', 'ENTITIES', 'ENTITY_VALUES', 'INTENT', 'INTENT_CONFIDENCE' ] 2019-02-18T21:33:03.035Z botium-asserterUtils Loaded Default logic hook - [ 'PAUSE', 'WAITFORBOT' ] 2019-02-18T21:33:03.035Z botium-asserterUtils Loaded Default user input - [ 'BUTTON', 'MEDIA' ] 2019-02-18T21:33:03.038Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found filenames: where_will_i_get_my_w-2.convo.txt 2019-02-18T21:33:03.041Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found convos: 1 W2 Former Bot Where will I get my W-2 (Associate executes: Where will I get my W-2) ({ filename: 'where_will_i_get_my_w-2.convo.txt' }): Line 4: #bot - Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. | Line 7: #bot - If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ | Line 11: #bot - Before we start, I have to do this legal thing. | Line 14: #bot - Please confirm that you will not share highly sensitive information with me, such as social security numbers. | Line 17: #me - Agree | Line 20: #bot - Let’s get started! | Line 23: #bot - Please select one of the following options. | Line 26: #me - Where will I get my W-2 2019-02-18T21:33:03.041Z botium-ScriptingProvider ReadConvosFromDirectory(test/convos/where_will_i_get_my_w-2/) found utterances:

2019-02-18T21:33:03.041Z botium-cli-run ready reading convos (1), expanding convos ... 2019-02-18T21:33:03.041Z botium-ScriptingProvider ExpandConvos - Using utterances expansion mode: all 2019-02-18T21:33:03.041Z botium-cli-run ready expanding convos and utterances, number of test cases: (1). 2019-02-18T21:33:03.043Z botium-cli-run adding test case W2 Former Bot Where will I get my W-2 (from: { filename: 'where_will_i_get_my_w-2.convo.txt' })

Botium Test-Suite 2019-02-18T21:33:03.046Z botium-BotDriver Build - Capabilites: { PROJECTNAME: 'W2 Former bot', TEMPDIR: 'botiumwork', CLEANUPTEMPDIR: true, WAITFORBOTTIMEOUT: 10000, SIMULATE_WRITING_SPEED: false, DOCKERCOMPOSEPATH: 'docker-compose', DOCKERMACHINEPATH: 'docker-machine', DOCKERMACHINE: false, DOCKERIMAGE: 'node:boron', DOCKERUNIQUECONTAINERNAMES: false, DOCKERSYSLOGPORT_RANGE: '47100-47299', BOT_HEALTH_STATUS: 200, SLACK_PUBLISHPORT_RANGE: '46100-46299', FACEBOOK_PUBLISHPORT_RANGE: '46300-46499', FACEBOOK_SEND_DELIVERY_CONFIRMATION: true, BOTFRAMEWORK_PUBLISHPORT_RANGE: '46500-46699', BOTFRAMEWORK_WEBHOOK_PORT: 3978, BOTFRAMEWORK_WEBHOOK_PATH: 'api/messages', BOTFRAMEWORK_CHANNEL_ID: 'facebook', SIMPLEREST_PING_RETRIES: 6, SIMPLEREST_PING_TIMEOUT: 10000, SIMPLEREST_PING_VERB: 'GET', SIMPLEREST_METHOD: 'GET', WEBSPEECH_SERVER_PORT: 46050, WEBSPEECH_LANGUAGE: 'en-US', WEBSPEECH_CLOSEBROWSER: true, SCRIPTING_TXT_EOL: '\n', SCRIPTING_XLSX_EOL_SPLIT: '\r', SCRIPTING_XLSX_EOL_WRITE: '\r\n', SCRIPTING_XLSX_STARTROW: 1, SCRIPTING_XLSX_STARTCOL: 'A', SCRIPTING_NORMALIZE_TEXT: true, SCRIPTING_ENABLE_MEMORY: false, SCRIPTING_MATCHING_MODE: 'includeLowerCase', SCRIPTING_UTTEXPANSION_MODE: 'all', SCRIPTING_UTTEXPANSION_RANDOM_COUNT: 1, SCRIPTING_UTTEXPANSION_INCOMPREHENSION: 'INCOMPREHENSION', ASSERTERS: [], LOGIC_HOOKS: [], USER_INPUTS: [], CONTAINERMODE: 'directline3', DIRECTLINE3_SECRET: '', DIRECTLINE3_WEBSOCKET: false, DIRECTLINE3_POLLINGINTERVAL: 1000, CONFIG: 'test/botium.json' } 2019-02-18T21:33:03.046Z botium-BotDriver Build - Sources : { LOCALPATH: '.', GITPATH: 'git', GITBRANCH: 'master', GITDIR: '.' } 2019-02-18T21:33:03.046Z botium-BotDriver Build - Envs : { IS_BOTIUM_CONTAINER: true } 2019-02-18T21:33:03.055Z botium-PluginConnectorContainer Loading Botium plugin from directline3 failed - { Error: Cannot find module 'directline3' at Function.Module._resolveFilename (internal/modules/cjs/loader.js:613:15) at Function.Module._load (internal/modules/cjs/loader.js:539:25) at Module.require (internal/modules/cjs/loader.js:667:17) at require (internal/modules/cjs/helpers.js:20:18) at tryLoadPlugin (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:16:20) at Validate.Validate.then (/usr/local/lib/node_modules/botium-cli/node_modules/botium-core/src/containers/PluginConnectorContainer.js:45:29) code: 'MODULE_NOT_FOUND' } 2019-02-18T21:33:03.089Z botium-PluginConnectorContainer Botium plugin botium-connector-directline3 loaded 2019-02-18T21:33:03.089Z botium-connector-directline3 Validate called 2019-02-18T21:33:03.090Z botium-connector-directline3 Build called 2019-02-18T21:33:03.091Z botium-connector-directline3 Start called 2019-02-18T21:33:03.110Z botium-connector-directline3 Directline Connection Status: 1 / Connecting 2019-02-18T21:33:03.110Z botium-cli-run running testcase W2 Former Bot Where will I get my W-2 2019-02-18T21:33:03.112Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:04.166Z botium-connector-directline3 Directline Connection Status: 2 / Online 2019-02-18T21:33:04.746Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000000", "timestamp": "2019-02-18T21:33:04.6043505Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "replyToId": "EiF7D81mvlO" } 2019-02-18T21:33:04.747Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000000", "timestamp": "2019-02-18T21:33:04.6043505Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "replyToId": "EiF7D81mvlO" }, "media": [], "buttons": [], "cards": [], "messageText": "Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.", "channel": "default" } 2019-02-18T21:33:04.748Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 4 BOT: Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. = Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate. ... 2019-02-18T21:33:04.749Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:05.687Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000001", "timestamp": "2019-02-18T21:33:04.8251156Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "replyToId": "EiF7D81mvlO" } 2019-02-18T21:33:05.687Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000002", "timestamp": "2019-02-18T21:33:05.0429894Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Before we start, I have to do this legal thing.", "replyToId": "EiF7D81mvlO" } 2019-02-18T21:33:05.687Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000003", "timestamp": "2019-02-18T21:33:05.2470076Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "inputHint": "expectingInput", "suggestedActions": { "actions": [ { "type": "imBack", "title": "Agree", "value": "Agree" }, { "type": "imBack", "title": "Disagree", "value": "Disagree" } ] }, "replyToId": "EiF7D81mvlO" } 2019-02-18T21:33:05.687Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000001", "timestamp": "2019-02-18T21:33:04.8251156Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "replyToId": "EiF7D81mvlO" }, "media": [], "buttons": [], "cards": [], "messageText": "If you are a current associate, please login.\n There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/", "channel": "default" } 2019-02-18T21:33:05.687Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 7 BOT: If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ = If you are a current associate, please login. There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/ ... 2019-02-18T21:33:05.688Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:05.688Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000002", "timestamp": "2019-02-18T21:33:05.0429894Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Before we start, I have to do this legal thing.", "replyToId": "EiF7D81mvlO" }, "media": [], "buttons": [], "cards": [], "messageText": "Before we start, I have to do this legal thing.", "channel": "default" } 2019-02-18T21:33:05.688Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 11 BOT: Before we start, I have to do this legal thing. = Before we start, I have to do this legal thing. ... 2019-02-18T21:33:05.688Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:05.688Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000003", "timestamp": "2019-02-18T21:33:05.2470076Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "inputHint": "expectingInput", "suggestedActions": { "actions": [ { "type": "imBack", "title": "Agree", "value": "Agree" }, { "type": "imBack", "title": "Disagree", "value": "Disagree" } ] }, "replyToId": "EiF7D81mvlO" }, "media": [], "buttons": [ { "text": "Agree", "payload": "Agree" }, { "text": "Disagree", "payload": "Disagree" } ], "cards": [], "messageText": "Please confirm that you will not share highly sensitive information with me, such as social security numbers.", "channel": "default" } 2019-02-18T21:33:05.688Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 14 BOT: Please confirm that you will not share highly sensitive information with me, such as social security numbers. = Please confirm that you will not share highly sensitive information with me, such as social security numbers. ... 2019-02-18T21:33:05.688Z botium-Convo W2 Former Bot Where will I get my W-2/Line 17: user says { "sender": "me", "channel": "default", "messageText": "Agree", "stepTag": "Line 17", "not": false, "asserters": [], "logicHooks": [], "userInputs": [] } 2019-02-18T21:33:05.689Z botium-connector-directline3 UserSays called 2019-02-18T21:33:05.689Z botium-connector-directline3 Posting activity { "from": { "id": "me" }, "type": "message", "text": "Agree" } 2019-02-18T21:33:07.325Z botium-connector-directline3 Posted activity, assigned ID 1T4LymjgH9t2MxXCBXtgqu|0000004 2019-02-18T21:33:07.325Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:07.727Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000005", "timestamp": "2019-02-18T21:33:06.6588506Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Let’s get started!", "inputHint": "acceptingInput", "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000004" } 2019-02-18T21:33:07.727Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000006", "timestamp": "2019-02-18T21:33:06.8869842Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Please select one of the following options.", "inputHint": "acceptingInput", "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000004" } 2019-02-18T21:33:07.727Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000007", "timestamp": "2019-02-18T21:33:07.091537Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "attachments": [ { "contentType": "application/vnd.microsoft.card.hero", "content": { "buttons": [ { "type": "imBack", "title": "Where will I get my W-2", "value": "Where will I get my W-2" }, { "type": "imBack", "title": "Change my Address", "value": "Change my Address" }, { "type": "imBack", "title": "Electronic W-2", "value": "Electronic W-2" }, { "type": "imBack", "title": "W-2 Validation", "value": "W-2 Validation" }, { "type": "imBack", "title": "More W-2 Questions", "value": "More W-2 Questions" } ] } } ], "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000004" } 2019-02-18T21:33:07.728Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000005", "timestamp": "2019-02-18T21:33:06.6588506Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Let’s get started!", "inputHint": "acceptingInput", "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000004" }, "media": [], "buttons": [], "cards": [], "messageText": "Let’s get started!", "channel": "default" } 2019-02-18T21:33:07.728Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 20 (Line 17: #me - Agree) BOT: Let’s get started! = Let’s get started! ... 2019-02-18T21:33:07.729Z botium-Convo W2 Former Bot Where will I get my W-2 wait for bot 'default' 2019-02-18T21:33:07.729Z botium-Convo W2 Former Bot Where will I get my W-2: bot says { "sender": "bot", "sourceData": { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000006", "timestamp": "2019-02-18T21:33:06.8869842Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Please select one of the following options.", "inputHint": "acceptingInput", "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000004" }, "media": [], "buttons": [], "cards": [], "messageText": "Please select one of the following options.", "channel": "default" } 2019-02-18T21:33:07.729Z botium-ScriptingProvider assertBotResponse W2 Former Bot Where will I get my W-2/Line 23 (Line 17: #me - Agree) BOT: Please select one of the following options. = Please select one of the following options. ... 2019-02-18T21:33:07.729Z botium-Convo W2 Former Bot Where will I get my W-2/Line 26: user says { "sender": "me", "channel": "default", "messageText": "Where will I get my W-2", "stepTag": "Line 26", "not": false, "asserters": [], "logicHooks": [], "userInputs": [] } 2019-02-18T21:33:07.729Z botium-connector-directline3 UserSays called 2019-02-18T21:33:07.729Z botium-connector-directline3 Posting activity { "from": { "id": "me" }, "type": "message", "text": "Where will I get my W-2" } 2019-02-18T21:33:08.692Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000009", "timestamp": "2019-02-18T21:33:08.3427803Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "No problem, I can help you with that!", "inputHint": "acceptingInput", "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000008" } 2019-02-18T21:33:08.692Z botium-connector-directline3 received message { "type": "message", "id": "1T4LymjgH9t2MxXCBXtgqu|0000010", "timestamp": "2019-02-18T21:33:08.5574688Z", "channelId": "webchat", "from": { "id": "w2botprod", "name": "w2botprod" }, "conversation": { "id": "1T4LymjgH9t2MxXCBXtgqu" }, "text": "Were you separated on or before December 21, 2018?", "inputHint": "expectingInput", "suggestedActions": { "actions": [ { "type": "imBack", "title": "Before 12-21-2018", "value": "Before 12-21-2018" }, { "type": "imBack", "title": "After 12-21-2018 ", "value": "After 12-21-2018 " } ] }, "replyToId": "1T4LymjgH9t2MxXCBXtgqu|0000008" } 2019-02-18T21:33:08.792Z botium-connector-directline3 Posted activity, assigned ID 1T4LymjgH9t2MxXCBXtgqu|0000008 2019-02-18T21:33:08.793Z botium-cli-run W2 Former Bot Where will I get my W-2 ready, calling done function. ✓ W2 Former Bot Where will I get my W-2 (5684ms) 2019-02-18T21:33:08.795Z botium-connector-directline3 Stop called 2019-02-18T21:33:08.795Z botium-connector-directline3 unsubscribing from directline activity subscription 2019-02-18T21:33:08.795Z botium-connector-directline3 unsubscribing from directline connectionstatus subscription 2019-02-18T21:33:08.796Z botium-connector-directline3 Clean called 2019-02-18T21:33:08.797Z botium-BaseContainer Cleanup rimrafing temp dir /Users/j0p01ex/projects/botium-box/botium-box-basic-dist/botiumwork/W2-Former-bot-20190218-153303-S5l5V

1 passing (6s)

codeforequity-at commented 5 years ago

Hello, The problem is that the script is missing one of the messages from the bot and is confused: All the options "Where will I get my W-2", "Change my Address" are sent as a separate message by your bot and this has to be reflected in the Botium script, see the additional line below.

The log output "cannot find module" you can safely ignore (we have a pull request in the pipeline to omit this output message - https://github.com/codeforequity-at/botium-core/pull/228).

#bot default
Hello! I’m a bot that can help with W-2 related questions if you are a former Walmart associate.

#bot default
If you are a current associate, please login.
There are specific details just for current Associates by going here: https://us3.walmartone.com/pages/money/tax-center/tax-center/

#bot default
Before we start, I have to do this legal thing.

#bot default
Please confirm that you will not share highly sensitive information with me, such as social security numbers.

#me default
Agree

#bot default
Let’s get started!

#bot default
Please select one of the following options.

#bot default
BUTTONS Where will I get my W-2|Change my Address|Change my Address|Electronic W-2|W-2 Validation|More W-2 Questions

#me default
Where will I get my W-2

#bot default
No problem, I can help you with that!
codeforequity-at commented 5 years ago

One more thing: The "Setup" phase in this conversation is rather long (6-7 turns), and we know that we have to provide a solution for this. We are currently working on something we call "partial convos" to make it possible to compose the full conversation flow from smaller conversation pieces. This will be part of Botium 1.4.10 and Botium Box 1.3 (the release after the next release this weekend).

jcomfort4 commented 5 years ago

I'm not able to get partial convos to work with botium-cli. Has this been released? Are there any examples of partial convos being used succesfully? I am following the suggestions here: https://medium.com/@floriantreml/botium-in-a-nutshell-part-2-writing-chatbot-tests-8726204c8da6 but it doesn't seem to work for me.

codeforequity-at commented 5 years ago

yes has been released. stackoverflow is better place to ask than a closed github issue. pls include used configuration and convos.

jcomfort4 commented 5 years ago

Thank you for the quick response! I'm sorry to ask in the wrong place, I just wanted to confirm it should have been working first before I tried to bother anybody - I have added as question on stackoverflow here: https://stackoverflow.com/questions/55774072/botium-partial-convos-are-not-actually-sending-conversations-to-chatbot

I did not find any tags that were botium-specific, but let me know if I missed them!