increase 95% coverage

This commit is contained in:
Leifer Mendez
2022-11-28 11:48:25 +01:00
parent f466b0cf7b
commit 82a6b634a9
11 changed files with 36 additions and 19 deletions

View File

@@ -4,5 +4,5 @@
"reporter": ["html"],
"report-dir": "./coverage",
"check-coverage": true,
"lines": 90
"lines": 95
}

View File

@@ -2,6 +2,7 @@
- [ ] __(doc)__ Video de como colaborar PR
### @bot-whatsapp/bot
- [ ] agregar export package
- [X] Posibilidad de en el capture meter todo un nuevo CTX de FLOW .addAnswer('Marca la opcion',{capture:true, join:CTX})
- [X] .addKeyword('1') no funciona con 1 caracter
- [X] sensitivy viene activado por defecto
@@ -11,12 +12,14 @@
- [ ] createDatabase validar implementacion de funciones
### @bot-whatsapp/database
- [ ] agregar export package
- [X] __(doc):__ Video para explicar como implementar nuevos database
- [X] Mongo adapter
- [ ] MySQL adapter
- [ ] JsonFile adapter
### @bot-whatsapp/provider
- [ ] agregar export package
- [ ] __(doc):__ Video para explicar como implementar nuevos providers
- [ ] WhatsappWeb provider enviar imagenes
- [ ] WhatsappWeb provider enviar audio

View File

@@ -1,6 +1,9 @@
const { EventEmitter } = require('node:events')
const ProviderClass = require('../packages/bot/provider/provider.class')
class MockProvider extends ProviderClass {
constructor() {
super()
}
class MockProvider extends EventEmitter {
delaySendMessage = (miliseconds, eventName, payload) =>
new Promise((res) =>
setTimeout(() => {
@@ -10,6 +13,7 @@ class MockProvider extends EventEmitter {
)
sendMessage = async (userId, message) => {
console.log(`Enviando... ${userId}, ${message}`)
return Promise.resolve({ userId, message })
}
}

View File

@@ -17,8 +17,8 @@
"link.dist": "cd packages/bot && npm link && cd ../provider && npm link && cd ../cli && npm link",
"test.unit": "node ./node_modules/uvu/bin.js packages test",
"test.e2e": "node ./node_modules/uvu/bin.js __tests__ test",
"test.coverage": "node ./node_modules/c8/bin/c8.js --check-coverage --lines=90 npm run test.unit",
"test": "npm run test.unit && npm run test.e2e",
"test.coverage": "node ./node_modules/c8/bin/c8.js npm run test.unit",
"test": "npm run test.coverage && npm run test.e2e",
"cli": "node ./packages/cli/bin/cli.js",
"dev:debug": "node --inspect ./example-app/app.js",
"dev": "node ./example-app/app.js",

View File

View File

@@ -24,14 +24,6 @@ class ProviderClass extends EventEmitter {
console.log('[sendMessage]', { userId, message })
return message
}
MockDelaySendMessage = (miliseconds, eventName, payload) =>
new Promise((res) =>
setTimeout(() => {
this.emit(eventName, payload)
res
}, miliseconds)
)
}
module.exports = ProviderClass

View File

@@ -1,7 +1,14 @@
const { test } = require('uvu')
const assert = require('uvu/assert')
const FlowClass = require('../io/flow.class')
const MockProvider = require('../../../__mocks__/mock.provider')
const { createBot, CoreClass } = require('../index')
const {
createBot,
CoreClass,
createFlow,
createProvider,
ProviderClass,
} = require('../index')
class MockFlow {
allCallbacks = [{ callback: () => console.log('') }]
@@ -55,6 +62,16 @@ test(`[CoreClass] Probando instanciamiento de clase`, async () => {
assert.is(bot instanceof CoreClass, true)
})
test(`[CoreClass createFlow] Probando instanciamiento de clase`, async () => {
const mockCreateFlow = createFlow([])
assert.is(mockCreateFlow instanceof FlowClass, true)
})
test(`[CoreClass createProvider] Probando instanciamiento de clase`, async () => {
const mockCreateProvider = createProvider(MockProvider)
assert.is(mockCreateProvider instanceof ProviderClass, true)
})
test(`[Bot] Eventos 'require_action,ready,auth_failure,message '`, async () => {
let responseEvents = {}

View File

@@ -12,7 +12,8 @@
"dotenv": "^16.0.3",
"mongodb": "^4.11.0"
},
"files": [
"./lib/*"
]
"exports": {
"./mock": "./lib/mock/index.cjs",
"./mongo": "./lib/mongo/index.cjs"
}
}

View File

@@ -3,7 +3,7 @@ const { join } = require('path')
module.exports = [
{
input: join(__dirname, 'mock', 'index.js'),
input: join(__dirname, 'src', 'mock', 'index.js'),
output: {
file: join(__dirname, 'lib', 'mock', 'index.cjs'),
format: 'cjs',
@@ -11,7 +11,7 @@ module.exports = [
plugins: [commonjs()],
},
{
input: join(__dirname, 'mongo', 'index.js'),
input: join(__dirname, 'src', 'mongo', 'index.js'),
output: {
file: join(__dirname, 'lib', 'mongo', 'index.cjs'),
format: 'cjs',