import { describe, it, expect, vi, beforeEach } from 'vitest';

vi.mock('@/lib/prisma', () => ({
    prisma: {
        disciplinaire: { findMany: vi.fn() },
    },
}));

import * as sanctionsService from '@/services/disciplinaires.service';
import { prisma } from '@/lib/prisma';

describe('Unit - services/sanctions', () => {
    beforeEach(() => {
        vi.resetAllMocks();
    });
    it('listSanctionsByEmployeId: should return the sanctions list with pagination', async () => {
        const cos= 5789
        const expectedList = [{ id: 1, num_salarie:cos }, { id: 2, num_salarie:cos }];

        vi.mocked(prisma.disciplinaire.findMany).mockResolvedValue(expectedList as never);

        const res = await sanctionsService.listSanctionsByEmployeId(cos);

        expect(prisma.disciplinaire.findMany).toHaveBeenCalledWith({
            orderBy: [{ id: 'asc' }],
            where: {
                num_salarie: cos
            }
        });
        expect(res).toEqual(expectedList);
    });
});