From 76ba717927a75b3d6299206aa0b8aee2bc25b726 Mon Sep 17 00:00:00 2001 From: Leifer Mendez Date: Sat, 4 Feb 2023 18:31:51 +0100 Subject: [PATCH] feat(provider): :zap: possible get class provider --- __test__/01-case.test.js | 7 +----- __test__/09-case.test.js | 41 +++++++++++++++++++++++++++++++++ packages/bot/core/core.class.js | 3 +++ 3 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 __test__/09-case.test.js diff --git a/__test__/01-case.test.js b/__test__/01-case.test.js index bce4a42..57ae08c 100644 --- a/__test__/01-case.test.js +++ b/__test__/01-case.test.js @@ -2,12 +2,7 @@ const { test } = require('uvu') const assert = require('uvu/assert') const MOCK_DB = require('../packages/database/src/mock') const PROVIDER_DB = require('../packages/provider/src/mock') -const { - addKeyword, - createBot, - createFlow, - createProvider, -} = require('../packages/bot') +const { addKeyword, createBot, createFlow, createProvider } = require('../packages/bot/index') test(`[Caso - 01] Flow Basico`, async () => { const [VALUE_A, VALUE_B] = ['hola', 'buenas'] diff --git a/__test__/09-case.test.js b/__test__/09-case.test.js new file mode 100644 index 0000000..417ce31 --- /dev/null +++ b/__test__/09-case.test.js @@ -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)) +} diff --git a/packages/bot/core/core.class.js b/packages/bot/core/core.class.js index a4a0cd0..29cf5d1 100644 --- a/packages/bot/core/core.class.js +++ b/packages/bot/core/core.class.js @@ -196,8 +196,11 @@ class CoreClass { // 📄 Se encarga de revisar si el contexto del mensaje tiene callback y ejecutarlo const cbEveryCtx = async (inRef) => { + const provider = this.providerClass + if (!this.flowClass.allCallbacks[inRef]) return Promise.resolve() return this.flowClass.allCallbacks[inRef](messageCtxInComming, { + provider, fallBack, flowDynamic, endFlow,