import { describe, it, expect } from 'vitest'

import { formatIdeaCode } from '@/lib/idea-code'

describe('formatIdeaCode', () => {
  it('pads to 3 digits', () => {
    expect(formatIdeaCode(1)).toBe('IDEA-001')
    expect(formatIdeaCode(42)).toBe('IDEA-042')
    expect(formatIdeaCode(999)).toBe('IDEA-999')
  })

  it('does not truncate beyond pad-width', () => {
    expect(formatIdeaCode(1000)).toBe('IDEA-1000')
    expect(formatIdeaCode(99999)).toBe('IDEA-99999')
  })
})

// Integration-style concurrency-test op nextIdeaCode is in
// __tests__/integration/ tests die de echte DB raken (zie M12 verificatie-stap).
// Hier alleen de pure formatter; de increment-logica leunt op Prisma's
// row-lock in $transaction die we per-database vertrouwen.
