mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 20:49:15 +00:00
mock BotClass
This commit is contained in:
@@ -85,10 +85,6 @@ class ProviderMock {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
class BotClass extends EventEmitter {
|
class BotClass extends EventEmitter {
|
||||||
/**
|
|
||||||
* Emitter para tener on and emit
|
|
||||||
*/
|
|
||||||
|
|
||||||
flowClass
|
flowClass
|
||||||
databaseClass
|
databaseClass
|
||||||
providerClass
|
providerClass
|
||||||
@@ -97,18 +93,30 @@ class BotClass extends EventEmitter {
|
|||||||
this.flowClass = _flow
|
this.flowClass = _flow
|
||||||
this.databaseClass = _database
|
this.databaseClass = _database
|
||||||
this.providerClass = _provider
|
this.providerClass = _provider
|
||||||
|
|
||||||
|
this.on('message', (ctxMessage) => {
|
||||||
|
this.databaseClass.saveLog(ctxMessage)
|
||||||
|
this.continue(ctxMessage.body)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
continue = () => {
|
continue = (message, ref = false) => {
|
||||||
const r = this.flowClass.find()
|
const responde = this.flowClass.find(message, ref)
|
||||||
if (r) {
|
if (responde) {
|
||||||
this.provider.sendMessage(r.answer)
|
this.providerClass.sendMessage(responde.answer)
|
||||||
this.continue(null, r.ref)
|
this.continue(null, responde.ref)
|
||||||
console.log(r)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ProviderClass {
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
sendMessage = (message) => {
|
||||||
|
console.log('Enviar...', message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class FlowClass {
|
class FlowClass {
|
||||||
flow
|
flow
|
||||||
constructor(_flow) {
|
constructor(_flow) {
|
||||||
@@ -119,7 +127,8 @@ class FlowClass {
|
|||||||
let keyRef = ref
|
let keyRef = ref
|
||||||
let ansRef = null
|
let ansRef = null
|
||||||
if (!keyRef) {
|
if (!keyRef) {
|
||||||
keyRef = this.flow.find((n) => n.keyword.includes(message)).ref
|
keyRef =
|
||||||
|
this.flow.find((n) => n.keyword.includes(message))?.ref || null
|
||||||
}
|
}
|
||||||
ansRef = this.flow.find((n) => n.keyword === keyRef)
|
ansRef = this.flow.find((n) => n.keyword === keyRef)
|
||||||
if (ansRef) return ansRef
|
if (ansRef) return ansRef
|
||||||
@@ -127,14 +136,25 @@ class FlowClass {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DatabaseClass {
|
||||||
|
constructor() {}
|
||||||
|
|
||||||
|
saveLog = (ctx) => {
|
||||||
|
console.log('Guardando...', ctx)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
test(`[Flow Basico]: Saludar y Responder`, () => {
|
test(`[Flow Basico]: Saludar y Responder`, () => {
|
||||||
let messages = []
|
let messages = []
|
||||||
|
|
||||||
const botBasic = new BotClass(new FlowClass(flow), null, null)
|
const botBasic = new BotClass(
|
||||||
|
new FlowClass(flow),
|
||||||
|
new DatabaseClass(),
|
||||||
|
new ProviderClass()
|
||||||
|
)
|
||||||
|
|
||||||
botBasic.on('message', (ctx) => messages.push(ctx.body))
|
botBasic.on('message', (ctx) => messages.push(ctx.body))
|
||||||
|
|
||||||
// Esta linea emula el llegar un mensaje!
|
|
||||||
botBasic.emit('message', { body: 'hola' })
|
botBasic.emit('message', { body: 'hola' })
|
||||||
|
|
||||||
assert.is(messages.join(','), 'hola')
|
assert.is(messages.join(','), 'hola')
|
||||||
|
|||||||
Reference in New Issue
Block a user