Click to try out hosted release testing.
Formalized directions for testing Web Chat for pre- and post-release.
- Navigate to VSTS Web Chat daily builds
- Extract into the drop folder:
- All files from
cdn_folder
except those ending in*.LICENSE
and*.json
- All
tgz
files
- All files from
- Move to 01.create-react-app directory
- Delete Web Chat and directlinespeech dependencies from
package.json
npm i botframework-directlinespeech-sdk....tgz
npm i botframework-webchat...core....tgz
npm i botframework-webchat...api....tgz
npm i botframework-webchat...component....tgz
npm i botframework-webchat...tgz
(no suffix)
https://1drv.ms/x/s!Aqv30r9qhHTIdWWqWl6egBqgaRk?e=F7jp1n
- Chrome
- Edge Anaheim
- Firefox
- Internet Explorer (
renderWebChat es5.js
) - Safari (Mac)
- Safari (iOS)
- Chrome (Android)
- Use the 'Run all tests' button
it runs this:
const commands = [ 'card bingsports', 'card breakfast', 'card broken:lang', 'card broken', 'card flight', 'card flighttracking', 'card inputs', 'card ol', 'card markdown', 'card reminder', 'card restaurant', 'card review', 'card richmessage', 'card simple', 'card sportsclub', 'card ul', 'card weather', 'animationcard', 'audio', 'audiocard', 'card-actions', 'carousel', 'channel-data', 'document-data-uri', 'document-plain', 'document-word', 'dump-activity', 'echo Hello world', 'emptycard', 'file', 'herocard', 'herocard long title', 'image', 'image-svg', 'input-hint accepting', 'input-hint expecting', 'input-hint ignoring', 'invalidCard', 'layout single', 'layout single carousel', 'layout double', 'layout carousel', 'layout', 'localization', 'markdown', 'content-multimedia', 'oauth', 'oauth signout', 'proactive', 'receiptcard', 'sample:backchannel', 'sample:password-input', 'sample:redux-middleware', 'signin', 'slow', 'speech', 'tell me a story', 'suggested-actions', 'text', 'thumbnailcard', 'thumbnailcard long title', 'timestamp grouping', 'typing', 'typing 1', 'unknown activity', 'unknown attachment', 'upload', 'user', 'user id', 'user name', 'video', 'video vimeo', 'video youtube', 'videocard', 'xml' ]; function runCommands(commands, dispatch) { if (!commands.length){ return } const text = commands.shift(); dispatch({ type: 'WEB_CHAT/SEND_MESSAGE', payload: { text } }); new Promise(function (resolve) { setTimeout(resolve, 3000); }).then(function () { runCommands(commands, dispatch); }); }
- On the release checklist, go through manual tests... manually.
We assume the hosting app has 4 ways to load Web Chat:
- Without React
- Pure JavaScript: use
renderWebChat()
- Direct Line Speech
- Pure JavaScript: use
- With React
- Babel
- Use
renderWebChat()
- Use JSX
<ReactWebChat>
- Use
create-react-app
: use JSX<ReactWebChat>
- Babel
In a React app, assume the hosting page will call React Hooks. Because Web Chat may not violate any rules of hooks, React will always be used/tested with Babel.