import { TicketPriority } from '@prisma/client';

const SLA_HOURS: Record<TicketPriority, number> = {
  URGENT: 4,
  HIGH: 24,
  MEDIUM: 72,
  LOW: 168,
};

describe('SLA computation', () => {
  it.each<[TicketPriority, number]>([
    ['URGENT', 4],
    ['HIGH', 24],
    ['MEDIUM', 72],
    ['LOW', 168],
  ])('priority %s should be due in %i hours', (priority, hours) => {
    const now = Date.now();
    const due = new Date(now + SLA_HOURS[priority] * 3600 * 1000);
    const deltaH = (due.getTime() - now) / 3600 / 1000;
    expect(deltaH).toBe(hours);
  });

  it('URGENT < HIGH < MEDIUM < LOW', () => {
    expect(SLA_HOURS.URGENT).toBeLessThan(SLA_HOURS.HIGH);
    expect(SLA_HOURS.HIGH).toBeLessThan(SLA_HOURS.MEDIUM);
    expect(SLA_HOURS.MEDIUM).toBeLessThan(SLA_HOURS.LOW);
  });
});
