mirror of
https://github.com/cheveguerra/bot-whatsapp.git
synced 2026-04-20 20:49:15 +00:00
feat(provider): ⚡ possible get class provider
This commit is contained in:
@@ -2,12 +2,7 @@ const { test } = require('uvu')
|
|||||||
const assert = require('uvu/assert')
|
const assert = require('uvu/assert')
|
||||||
const MOCK_DB = require('../packages/database/src/mock')
|
const MOCK_DB = require('../packages/database/src/mock')
|
||||||
const PROVIDER_DB = require('../packages/provider/src/mock')
|
const PROVIDER_DB = require('../packages/provider/src/mock')
|
||||||
const {
|
const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index')
|
||||||
addKeyword,
|
|
||||||
createBot,
|
|
||||||
createFlow,
|
|
||||||
createProvider,
|
|
||||||
} = require('../packages/bot')
|
|
||||||
|
|
||||||
test(`[Caso - 01] Flow Basico`, async () => {
|
test(`[Caso - 01] Flow Basico`, async () => {
|
||||||
const [VALUE_A, VALUE_B] = ['hola', 'buenas']
|
const [VALUE_A, VALUE_B] = ['hola', 'buenas']
|
||||||
|
|||||||
41
__test__/09-case.test.js
Normal file
41
__test__/09-case.test.js
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
const { test } = require('uvu')
|
||||||
|
const assert = require('uvu/assert')
|
||||||
|
const MOCK_DB = require('../packages/database/src/mock')
|
||||||
|
const PROVIDER_MOCK = require('../packages/provider/src/mock')
|
||||||
|
const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index')
|
||||||
|
|
||||||
|
let PROVIDER = undefined
|
||||||
|
|
||||||
|
test(`[Caso - 09] Check provider WS`, async () => {
|
||||||
|
const [VALUE_A, VALUE_B] = ['hola', 'buenas']
|
||||||
|
|
||||||
|
const flow = addKeyword(VALUE_A).addAnswer(VALUE_B, null, async (_, { provider }) => {
|
||||||
|
PROVIDER = provider
|
||||||
|
})
|
||||||
|
const provider = createProvider(PROVIDER_MOCK)
|
||||||
|
const database = new MOCK_DB()
|
||||||
|
|
||||||
|
createBot({
|
||||||
|
database,
|
||||||
|
flow: createFlow([flow]),
|
||||||
|
provider,
|
||||||
|
})
|
||||||
|
|
||||||
|
provider.delaySendMessage(100, 'message', {
|
||||||
|
from: '000',
|
||||||
|
body: VALUE_A,
|
||||||
|
})
|
||||||
|
|
||||||
|
await delay(100)
|
||||||
|
|
||||||
|
const prevMsg = database.getPrevByNumber('000')
|
||||||
|
|
||||||
|
assert.is(prevMsg.answer, VALUE_B)
|
||||||
|
assert.is(typeof PROVIDER.sendMessage, 'function')
|
||||||
|
})
|
||||||
|
|
||||||
|
test.run()
|
||||||
|
|
||||||
|
function delay(ms) {
|
||||||
|
return new Promise((res) => setTimeout(res, ms))
|
||||||
|
}
|
||||||
@@ -196,8 +196,11 @@ class CoreClass {
|
|||||||
|
|
||||||
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
|
// 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo
|
||||||
const cbEveryCtx = async (inRef) => {
|
const cbEveryCtx = async (inRef) => {
|
||||||
|
const provider = this.providerClass
|
||||||
|
|
||||||
if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve()
|
if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve()
|
||||||
return this.flowClass.allCallbacks[inRef](messageCtxInComming, {
|
return this.flowClass.allCallbacks[inRef](messageCtxInComming, {
|
||||||
|
provider,
|
||||||
fallBack,
|
fallBack,
|
||||||
flowDynamic,
|
flowDynamic,
|
||||||
endFlow,
|
endFlow,
|
||||||
|
|||||||
Reference in New Issue
Block a user