import { describe, expect, it } from 'vitest'
import { computeDue, isBreached } from './sla.js'

describe('computeDue', () => {
  it('adds dueMinutes to the from timestamp', () => {
    const from = new Date('2026-06-15T10:00:00.000Z')
    const dueAt = computeDue({ scopeKey: 'ticket:default', target: 'first_response', dueMinutes: 90 }, from)
    expect(dueAt.toISOString()).toBe('2026-06-15T11:30:00.000Z')
  })
})

describe('isBreached', () => {
  const dueAt = new Date('2026-06-15T12:00:00.000Z')

  it('is false before the due time', () => {
    expect(isBreached(dueAt, new Date('2026-06-15T11:59:59.999Z'))).toBe(false)
  })

  it('is true after the due time', () => {
    expect(isBreached(dueAt, new Date('2026-06-15T12:00:00.001Z'))).toBe(true)
  })
})
