const models = require('vn-loopback/server/server').models;

describe('Chat sendCheckingPresence()', () => {
    const today = Date.vnNew();
    today.setHours(6, 0);
    const chatModel = models.Chat;

    it(`should call to sendCheckingUserStatus()`, async() => {
        spyOn(chatModel, 'sendCheckingUserStatus').and.callThrough();

        const chat = {
            checkUserStatus: 1,
            status: 'pending',
            attempts: 0
        };

        await chatModel.destroyAll();
        await chatModel.create(chat);

        await chatModel.sendQueued();

        expect(chatModel.sendCheckingUserStatus).toHaveBeenCalled();
    });

    it(`should call to sendMessage() method`, async() => {
        spyOn(chatModel, 'sendMessage').and.callThrough();

        const chat = {
            checkUserStatus: 0,
            status: 'pending',
            attempts: 0
        };

        await chatModel.destroyAll();
        await chatModel.create(chat);

        await chatModel.sendQueued();

        expect(chatModel.sendMessage).toHaveBeenCalled();
    });
});