47 lines
1.8 KiB
JavaScript
47 lines
1.8 KiB
JavaScript
const app = require('vn-loopback/server/server');
|
|
|
|
describe('chat sendCheckingPresence()', () => {
|
|
const today = new Date();
|
|
today.setHours(6, 0);
|
|
const ctx = {req: {accessToken: {userId: 1}}};
|
|
const chatModel = app.models.Chat;
|
|
const departmentId = 23;
|
|
const workerId = 107;
|
|
|
|
it(`should call send() method with the worker name if he's currently working then return a response`, async() => {
|
|
spyOn(chatModel, 'send').and.callThrough();
|
|
|
|
const 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');
|
|
|
|
// restores
|
|
await app.models.WorkerTimeControl.destroyById(timeEntry.id);
|
|
});
|
|
|
|
it(`should call to send() method with the worker department channel if he's not currently working then return a response`, async() => {
|
|
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');
|
|
|
|
// restores
|
|
await department.updateAttribute('chatName', null);
|
|
});
|
|
});
|