66 lines
2.7 KiB
JavaScript
66 lines
2.7 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
|
|
describe('chat sendCheckingPresence()', () => {
|
|
const departmentId = 23;
|
|
const workerId = 107;
|
|
let timeEntry;
|
|
|
|
afterAll(async done => {
|
|
const department = await app.models.Department.findById(departmentId);
|
|
await department.updateAttribute('chatName', null);
|
|
await app.models.WorkerTimeControl.destroyById(timeEntry.id);
|
|
done();
|
|
});
|
|
|
|
it(`should call to send() method with the worker username when no department channel is specified
|
|
and then return a "Fake notification sent" as response`, async() => {
|
|
const ctx = {req: {accessToken: {userId: 1}}};
|
|
const chatModel = app.models.Chat;
|
|
spyOn(chatModel, 'send').and.callThrough();
|
|
|
|
const response = await chatModel.sendCheckingPresence(ctx, workerId, 'I changed something');
|
|
|
|
expect(response.statusCode).toEqual(200);
|
|
expect(response.message).toEqual('Fake notification sent');
|
|
expect(chatModel.send).toHaveBeenCalledWith(ctx, '@HankPym', 'I changed something');
|
|
});
|
|
|
|
it(`should call to send() method with the worker department channel if is specified
|
|
and then return a "Fake notification sent" as response`, async() => {
|
|
const ctx = {req: {accessToken: {userId: 1}}};
|
|
const chatModel = app.models.Chat;
|
|
spyOn(chatModel, 'send').and.callThrough();
|
|
|
|
const department = await app.models.Department.findById(departmentId);
|
|
await department.updateAttribute('chatName', 'cooler');
|
|
|
|
const response = await chatModel.sendCheckingPresence(ctx, workerId, 'I changed something');
|
|
|
|
expect(response.statusCode).toEqual(200);
|
|
expect(response.message).toEqual('Fake notification sent');
|
|
expect(chatModel.send).toHaveBeenCalledWith(ctx, '#cooler', '@HankPym => I changed something');
|
|
});
|
|
|
|
it(`should call to send() method with the worker username when the worker is working`, async() => {
|
|
const ctx = {req: {accessToken: {userId: 1}}};
|
|
const chatModel = app.models.Chat;
|
|
spyOn(chatModel, 'send').and.callThrough();
|
|
|
|
const today = new Date();
|
|
today.setHours(6, 0);
|
|
|
|
timeEntry = await app.models.WorkerTimeControl.create({
|
|
userFk: workerId,
|
|
timed: today,
|
|
manual: false,
|
|
direction: 'in'
|
|
});
|
|
|
|
const response = await chatModel.sendCheckingPresence(ctx, workerId, 'I changed something');
|
|
|
|
expect(response.statusCode).toEqual(200);
|
|
expect(response.message).toEqual('Fake notification sent');
|
|
expect(chatModel.send).toHaveBeenCalledWith(ctx, '@HankPym', 'I changed something');
|
|
});
|
|
});
|