UNPKG

botium-core

Version:
260 lines (253 loc) 8.55 kB
const path = require('path') const assert = require('chai').assert const { Convo } = require('../../../src/scripting/Convo') const ScriptingProvider = require('../../../src/scripting/ScriptingProvider') const DefaultCapabilities = require('../../../src/Defaults').Capabilities const Capabilities = require('../../../src/Capabilities') const CAPS = Object.assign({}, DefaultCapabilities, { [Capabilities.SCRIPTING_UTTEXPANSION_MODE]: 'index', [Capabilities.USER_INPUTS]: [ { ref: 'MEDIA', src: 'MediaInput', args: { downloadMedia: true, baseDir: path.join(__dirname, 'files') } } ] }) describe('scripting.utteranceexpansion.associateByIndex', function () { it('should associate utterances by index', async function () { const scriptingProvider = new ScriptingProvider(CAPS) await scriptingProvider.Build() // adding more utterances as batch is not working scriptingProvider.AddUtterances({ name: 'UTT_HELLO', utterances: ['UTT_HELLO_SAMPLE_1', 'UTT_HELLO_SAMPLE_2', 'UTT_HELLO_SAMPLE_3'] }) scriptingProvider.AddUtterances({ name: 'UTT_BODY', utterances: ['UTT_BODY_SAMPLE_1'] }) scriptingProvider.AddUtterances({ name: 'UTT_GOODBYE', utterances: ['UTT_GOODBYE_SAMPLE_1', 'UTT_GOODBYE_SAMPLE_2', 'UTT_GOODBYE_SAMPLE_3', 'UTT_GOODBYE_SAMPLE_4', 'UTT_GOODBYE_SAMPLE_5'] }) scriptingProvider.AddConvos(new Convo(scriptingProvider._buildScriptContext(), { header: { name: 'test convo' }, conversation: [ { sender: 'me', messageText: 'UTT_HELLO' }, { sender: 'bot', messageText: 'hello' }, { sender: 'me', messageText: 'UTT_BODY' }, { sender: 'bot', messageText: 'body' }, { sender: 'me', messageText: 'UTT_GOODBYE' }, { sender: 'bot', messageText: 'goodbye' } ] })) scriptingProvider.ExpandConvos() assert.equal(scriptingProvider.convos.length, 5) assert.equal(scriptingProvider.convos[0].header.name, 'test convo/UTT_HELLO-L1/UTT_GOODBYE-L1') assert.deepEqual(scriptingProvider.convos[0].conversation.length, 6) assert.equal(scriptingProvider.convos[1].header.name, 'test convo/UTT_HELLO-L2/UTT_GOODBYE-L2') assert.deepEqual(scriptingProvider.convos[1].conversation.length, 6) assert.equal(scriptingProvider.convos[2].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L3') assert.deepEqual(scriptingProvider.convos[2].conversation.length, 6) assert.equal(scriptingProvider.convos[3].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L4') assert.deepEqual(scriptingProvider.convos[3].conversation.length, 6) assert.equal(scriptingProvider.convos[4].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L5') assert.deepEqual(scriptingProvider.convos[4].conversation.length, 6) }) it('should associate media by index', async function () { const scriptingProvider = new ScriptingProvider(CAPS) await scriptingProvider.Build() scriptingProvider.AddConvos(new Convo(scriptingProvider._buildScriptContext(), { header: { name: 'test convo' }, conversation: [ { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step0*.wav' ] } ] }, { sender: 'bot', messageText: 'hello' }, { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step1*.wav' ] } ] }, { sender: 'bot', messageText: 'ok' }, { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step2*.wav' ] } ] }, { sender: 'bot', messageText: 'goodbye!' } ] })) scriptingProvider.ExpandConvos() assert.equal(scriptingProvider.convos.length, 5) assert.equal(scriptingProvider.convos[0].header.name, 'test convo/MEDIA-step0voice0.wav/MEDIA-step2voice0.wav') assert.deepEqual(scriptingProvider.convos[0].conversation.length, 6) assert.equal(scriptingProvider.convos[1].header.name, 'test convo/MEDIA-step0voice1.wav/MEDIA-step2voice1.wav') assert.deepEqual(scriptingProvider.convos[1].conversation.length, 6) assert.equal(scriptingProvider.convos[2].header.name, 'test convo/MEDIA-step0voice2.wav/MEDIA-step2voice2.wav') assert.deepEqual(scriptingProvider.convos[2].conversation.length, 6) assert.equal(scriptingProvider.convos[3].header.name, 'test convo/MEDIA-step0voice2.wav/MEDIA-step2voice4.wav') assert.deepEqual(scriptingProvider.convos[3].conversation.length, 6) assert.equal(scriptingProvider.convos[4].header.name, 'test convo/MEDIA-step0voice2.wav/MEDIA-step2voice5.wav') assert.deepEqual(scriptingProvider.convos[4].conversation.length, 6) }) it('should associate utterance and media by index', async function () { const scriptingProvider = new ScriptingProvider(CAPS) await scriptingProvider.Build() scriptingProvider.AddUtterances({ name: 'UTT_HELLO', utterances: ['UTT_HELLO_SAMPLE_1', 'UTT_HELLO_SAMPLE_2', 'UTT_HELLO_SAMPLE_3'] }) scriptingProvider.AddUtterances({ name: 'UTT_BODY', utterances: ['UTT_BODY_SAMPLE_1'] }) scriptingProvider.AddUtterances({ name: 'UTT_GOODBYE', utterances: ['UTT_GOODBYE_SAMPLE_1', 'UTT_GOODBYE_SAMPLE_2', 'UTT_GOODBYE_SAMPLE_3', 'UTT_GOODBYE_SAMPLE_4', 'UTT_GOODBYE_SAMPLE_5'] }) scriptingProvider.AddConvos(new Convo(scriptingProvider._buildScriptContext(), { header: { name: 'test convo' }, conversation: [ { sender: 'me', messageText: 'UTT_HELLO' }, { sender: 'bot', messageText: 'hello' }, { sender: 'me', messageText: 'UTT_BODY' }, { sender: 'bot', messageText: 'body' }, { sender: 'me', messageText: 'UTT_GOODBYE' }, { sender: 'bot', messageText: 'goodbye' }, { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step0*.wav' ] } ] }, { sender: 'bot', messageText: 'hello' }, { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step1*.wav' ] } ] }, { sender: 'bot', messageText: 'ok' }, { sender: 'me', userInputs: [ { name: 'MEDIA', args: [ 'step2*.wav' ] } ] }, { sender: 'bot', messageText: 'goodbye!' } ] })) scriptingProvider.ExpandConvos() assert.equal(scriptingProvider.convos.length, 5) assert.equal(scriptingProvider.convos[0].header.name, 'test convo/UTT_HELLO-L1/UTT_GOODBYE-L1/MEDIA-step0voice0.wav/MEDIA-step2voice0.wav') assert.deepEqual(scriptingProvider.convos[0].conversation.length, 12) assert.equal(scriptingProvider.convos[1].header.name, 'test convo/UTT_HELLO-L2/UTT_GOODBYE-L2/MEDIA-step0voice1.wav/MEDIA-step2voice1.wav') assert.deepEqual(scriptingProvider.convos[1].conversation.length, 12) assert.equal(scriptingProvider.convos[2].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L3/MEDIA-step0voice2.wav/MEDIA-step2voice2.wav') assert.deepEqual(scriptingProvider.convos[2].conversation.length, 12) assert.equal(scriptingProvider.convos[3].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L4/MEDIA-step0voice2.wav/MEDIA-step2voice4.wav') assert.deepEqual(scriptingProvider.convos[3].conversation.length, 12) assert.equal(scriptingProvider.convos[4].header.name, 'test convo/UTT_HELLO-L3/UTT_GOODBYE-L5/MEDIA-step0voice2.wav/MEDIA-step2voice5.wav') assert.deepEqual(scriptingProvider.convos[4].conversation.length, 12) }) })