Files
bot-whatsapp/__tests__/basic-seller.e2e.test.js
Leifer Mendez 8410309e38 continue
2022-11-09 20:07:52 +01:00

58 lines
1.6 KiB
JavaScript

const { test } = require('uvu')
const assert = require('uvu/assert')
const { MOCK_MOBILE_WS } = require('../__mocks__/mobile.mock')
const { inout, provider, database, botcore } = require('../packages/index')
const makeFlow = () => {
const flowA = inout
.addKeyword(['hola', 'ole'])
.addAnswer('Bienvenido a github.com/leifermendez')
.addAnswer('Soy Leifer y tu ?', {
capture: true,
})
.addAnswer('Un gusto saludarte')
.toJson()
return [...flowA]
}
test(`[BotClass]: recibe los mensajes entrantes del provider`, async () => {
let messagesIn = []
let messagesOut = []
const adapterFlow = await inout.create(makeFlow())
const adapterProvider = await provider.create({
vendor: 'mock',
credentials: {},
})
const adapterDB = await database.create({
engine: 'mock',
credentials: {},
})
const bot = await botcore.create({
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider,
})
bot.on('message', (ctx) => messagesIn.push(ctx.message))
bot.emit('message', { ...MOCK_MOBILE_WS, message: 'hola' })
assert.is(messagesIn.join(), ['hola'].join())
await delay(200)
bot.emit('message', { ...MOCK_MOBILE_WS, message: 'Pedro!' })
console.log(messagesIn)
assert.is(messagesIn.join(), ['hola', 'Pedro!'].join())
messagesOut = adapterDB.history
// assert.is(messagesOut.join(), ['Pedro!'].join())
})
function delay(miliseconds) {
return new Promise((res) => setTimeout(res, miliseconds))
}
test.run()