const app = require('vn-loopback/server/server');
const LoopBackContext = require('loopback-context');

describe('ticket model TicketTracking', () => {
    beforeAll(async() => {
        const activeCtx = {
            accessToken: {userId: 9},
            http: {
                req: {
                    headers: {origin: 'http://localhost'}
                }
            }
        };
        spyOn(LoopBackContext, 'getCurrentContext').and.returnValue({
            active: activeCtx
        });
    });
    let ticketTrackingId;

    afterAll(async() => {
        await app.models.TicketPackaging.destroyById(ticketTrackingId);
    });

    it('should save a ticketTraing as the quantity is greater than 0', async() => {
        let result = await app.models.TicketPackaging.create({ticketFk: 1, quantity: 1, packagingFk: 1});

        expect(result).toBeTruthy();
        ticketTrackingId = result.id;
    });

    it('should return an error as the quantity is 0', async() => {
        let error;
        try {
            await app.models.TicketPackaging.create({ticketFk: 1, quantity: 0, packagingFk: 1});
        } catch (e) {
            error = e;
        }

        expect(error.message).toContain('Enter an integer different to zero');
    });

    it('should return an error as the quantity isnt a number', async() => {
        let error;
        try {
            await app.models.TicketPackaging.create({ticketFk: 1, quantity: 'random string', packagingFk: 1});
        } catch (e) {
            error = e;
        }

        expect(error.message).toContain('Enter an integer different to zero');
    });
});