import { describe, it, expect } from 'vitest'
import { formatDurationDe } from '../vsm-duration-format'

describe('formatDurationDe', () => {
  it('formats sub-minute values as whole seconds', () => {
    expect(formatDurationDe(0)).toBe('0 s')
    expect(formatDurationDe(45)).toBe('45 s')
    expect(formatDurationDe(45.6)).toBe('46 s')
  })

  it('formats sub-hour values as minutes + seconds', () => {
    expect(formatDurationDe(90)).toBe('1 Min. 30 s')
    expect(formatDurationDe(3599)).toBe('59 Min. 59 s')
  })

  it('formats sub-day values as hours + minutes', () => {
    expect(formatDurationDe(3600)).toBe('1 Std. 0 Min.')
    expect(formatDurationDe(3660)).toBe('1 Std. 1 Min.')
    expect(formatDurationDe(86399)).toBe('23 Std. 59 Min.')
  })

  it('formats day-scale values as days + hours, singular/plural correctly', () => {
    expect(formatDurationDe(86400)).toBe('1 Tag 0 Std.')
    expect(formatDurationDe(2 * 86400 + 3 * 3600)).toBe('2 Tage 3 Std.')
  })

  it('handles negative values with a leading sign, same magnitude formatting', () => {
    expect(formatDurationDe(-45)).toBe('-45 s')
    expect(formatDurationDe(-90)).toBe('-1 Min. 30 s')
  })
})
