This commit is contained in:
Leifer Mendez
2022-08-15 13:04:36 +02:00
parent 97226d78e0
commit 47f1ddfbb0
32 changed files with 2465 additions and 62 deletions

View File

@@ -0,0 +1,33 @@
import DbRepository from "../../../src/bot/domain/repositories/db.repository";
export default class DbRepositoryMock implements DbRepository {
getAnswer(): Promise<string> {
return Promise.resolve("Hola soy la respuesta que esperas");
}
findLastContact(phone: string): Promise<number> {
return Promise.resolve(1);
}
findLastMsg(
phone: string
): Promise<{ msg: string; step: string; contextId: string }> {
return Promise.resolve({
msg: "Hola de nuevo!",
step: "fisrt",
contextId: "0000000000000",
});
}
findGreetMessage(): Promise<string> {
return Promise.resolve("Hola y bienvenido soy el saludo");
}
saveRecord({
msg,
phone,
contextId,
}: {
msg: string;
phone: string;
contextId: string;
}): Promise<boolean> {
return Promise.resolve(true);
}
}

View File

@@ -0,0 +1,8 @@
import DialogRepository from "../../../src/bot/domain/repositories/dialog.repository";
export default class DialogRepositoryMock implements DialogRepository{
getAnswer({ msg, contextId }: any): Promise<string> {
return Promise.resolve('Quieres helado')
}
}

View File

@@ -0,0 +1,13 @@
import { Message } from "../../../src/bot/domain/message";
import WhatsappRepository from "../../../src/bot/domain/repositories/whatsapp.repository";
const MESSAGE_MOCK = new Message({ msg: "Hola msg!", phone: "777777777" });
export default class WhatsappRepositoryMock implements WhatsappRepository {
sendMsg({ msg, phone, contextId }: any): Promise<Message | null | undefined> {
return Promise.resolve(MESSAGE_MOCK);
}
onMsg({ msg, phone }: any): Promise<string | null | undefined> {
return Promise.resolve('MESSAGE_MOCK');
}
}

View File

@@ -0,0 +1,43 @@
import Greeting from "../../../src/bot/application/greeting";
import DbRepository from "../../../src/bot/domain/repositories/db.repository";
import DialogRepository from "../../../src/bot/domain/repositories/dialog.repository";
import WhatsappRepository from "../../../src/bot/domain/repositories/whatsapp.repository";
import WhatsBus from "../../../src/bot/infrastructure/events/whatsapp.events";
import DbRepositoryMock from "../__mocks__/db.repositoryMock";
import DialogRepositoryMock from "../__mocks__/dialog.repositoryMock";
import WhatsappRepositoryMock from "../__mocks__/whatsapp.repositoryMock";
let whatsappRepository: WhatsappRepository;
let dbRepository: DbRepository;
let dialogRepository: DialogRepository;
let greeting: Greeting;
let whatsBus: WhatsBus;
beforeEach(() => {
whatsappRepository = new WhatsappRepositoryMock();
dbRepository = new DbRepositoryMock();
dialogRepository = new DialogRepositoryMock();
whatsBus = new WhatsBus();
greeting = new Greeting([
whatsappRepository,
dbRepository,
dialogRepository,
whatsBus,
]);
});
describe(`Test de Greeting`, () => {
test(`shoud received a object`, async () => {
const { recordSave } = (await greeting.firstGreet(
"8888888888888888888"
)) as any;
expect(recordSave).toEqual(true);
});
test(`continue conversation "Quieres helado"`, async () => {
const { msgTosend } = await greeting.continueConversation(
"888888888888888"
);
expect(msgTosend.msg).toEqual("Quieres helado");
});
});