Files
bot-whatsapp/__tests__/basic-seller.e2e.test.js
Leifer Mendez 45272fb34f test pass
2022-11-11 13:31:43 +01:00

56 lines
1.6 KiB
JavaScript

const { test } = require('uvu')
const assert = require('uvu/assert')
const { MOCK_MOBILE_WS } = require('../__mocks__/mobile.mock')
const { inout, database, botcore } = require('../packages/index')
const mockProvider = require('../packages/provider/adapters/mock')
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 = inout.create(makeFlow())
const adapterProvider = mockProvider
const adapterDB = await database.create({
engine: 'mock',
credentials: {},
})
const bot = await botcore.create({
flow: adapterFlow,
database: adapterDB,
provider: adapterProvider,
})
adapterProvider.on('message', (ctx) => messagesIn.push(ctx.message))
adapterProvider.emit('message', { ...MOCK_MOBILE_WS, message: 'hola' })
assert.is(messagesIn.join(), ['hola'].join())
await delay(200)
adapterProvider.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()