mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-19 03:59:17 +00:00
fix
This commit is contained in:
@@ -1,36 +1,57 @@
|
||||
const { test } = require('uvu')
|
||||
const assert = require('uvu/assert')
|
||||
|
||||
const { MOCK_MOBILE_WS } = require('../__mocks__/mobile.mock')
|
||||
// const { inout, provider, database, botcore } = require('../lib/index.cjs')
|
||||
const { inout, provider, database, botcore } = require('../packages/index')
|
||||
|
||||
const adapterDB = database.create({
|
||||
engine: 'mock',
|
||||
credentials: {},
|
||||
})
|
||||
|
||||
const adapterProvider = provider.create({
|
||||
vendor: 'mock',
|
||||
credentials: {},
|
||||
})
|
||||
|
||||
const makeFlow = () => {
|
||||
const flowA = inout
|
||||
.addKeyword('hola')
|
||||
.addAnswer('Bienvenido a tu tienda 🥲')
|
||||
.addAnswer('escribe *catalogo* o *ofertas*')
|
||||
.addKeyword(['hola', 'ole'])
|
||||
.addAnswer('Bienvenido a github.com/leifermendez')
|
||||
.addAnswer('Soy Leifer y tu ?', {
|
||||
capture: true,
|
||||
})
|
||||
.addAnswer('Un gusto saludarte')
|
||||
.toJson()
|
||||
|
||||
return [...flowA]
|
||||
}
|
||||
|
||||
const adapterFlow = inout.create(makeFlow())
|
||||
test(`[BotClass]: recibe los mensajes entrantes del provider`, async () => {
|
||||
let messagesIn = []
|
||||
let messagesOut = []
|
||||
|
||||
test(`[Bot Vendedor]: recibe los mensajes entrantes del provider`, () => {
|
||||
const bot = botcore.create({
|
||||
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(1500)
|
||||
bot.emit('message', { ...MOCK_MOBILE_WS, message: 'Pedro!' })
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user