const app = require('vn-loopback/server/server');
const ParameterizedSQL = require('loopback-connector').ParameterizedSQL;

describe('logAddWithUser()', () => {
    it('should log any action taken by the user in a table ending in Log', async() => {
        let stmts = [];
        let stmt;

        stmts.push('START TRANSACTION');

        let params = {
            ticketFk: 1,
            userId: 9,
            actionCode: 'update',
            targetEntity: 'ticket',
            description: 'we are testing stuff'
        };

        stmt = new ParameterizedSQL('CALL vn.logAddWithUser(?, ?, ?, ?, ?)', [
            params.ticketFk,
            params.userId,
            params.actionCode,
            params.targetEntity,
            params.description
        ]);
        stmts.push(stmt);

        stmt = new ParameterizedSQL('SELECT * FROM vn.ticketLog WHERE description = ?', [
            params.description
        ]);
        let ticketLogIndex = stmts.push(stmt) - 1;

        stmts.push('ROLLBACK');

        let sql = ParameterizedSQL.join(stmts, ';');
        let result = await app.models.Ticket.rawStmt(sql);

        savedDescription = result[ticketLogIndex][0].description;

        expect(savedDescription).toEqual(params.description);
    });
});