import { describe, it, expect } from 'vitest' import { formatDateTimeSafe } from './format' // A real, deterministic timestamp: 2023-11-14T22:13:20Z (epoch seconds 1700000000). const REAL_SECONDS = 1_700_000_000 const REAL_ISO = '2023-11-14T22:13:20Z' describe('formatDateTimeSafe', () => { it('formats a valid epoch-seconds timestamp', () => { const out = formatDateTimeSafe(REAL_SECONDS, 'en') expect(out).toBeTruthy() expect(out).toMatch(/2023/) expect(out).not.toMatch(/1970|Invalid Date/) }) it('formats a valid ISO timestamp', () => { expect(formatDateTimeSafe(REAL_ISO, 'en')).toMatch(/2023/) }) it('formats an ISO timestamp with an explicit timezone offset', () => { expect(formatDateTimeSafe('2023-11-15T01:13:20+03:00', 'en')).toMatch(/2023/) }) it('returns null for null', () => { expect(formatDateTimeSafe(null, 'en')).toBeNull() }) it('returns null for undefined', () => { expect(formatDateTimeSafe(undefined, 'en')).toBeNull() }) it('returns null for an empty string', () => { expect(formatDateTimeSafe('', 'en')).toBeNull() }) it('returns null for an invalid string', () => { expect(formatDateTimeSafe('not-a-date', 'en')).toBeNull() }) it('returns null for numeric zero', () => { expect(formatDateTimeSafe(0, 'en')).toBeNull() }) it('returns null for the 1970 epoch ISO', () => { expect(formatDateTimeSafe('1970-01-01T00:00:00Z', 'en')).toBeNull() }) it('returns null for a tiny placeholder epoch (e.g. 2)', () => { expect(formatDateTimeSafe(2, 'en')).toBeNull() }) it('returns null for a non-finite number', () => { expect(formatDateTimeSafe(Number.NaN, 'en')).toBeNull() expect(formatDateTimeSafe(Number.POSITIVE_INFINITY, 'en')).toBeNull() }) it('renders a valid date in Arabic locale', () => { const ar = formatDateTimeSafe(REAL_SECONDS, 'ar') expect(ar).toBeTruthy() expect(ar).not.toMatch(/1970|Invalid Date/) // Arabic-Indic digits present (ar-SA formatting) expect(ar).toMatch(/[٠-٩]/) }) it('returns null in Arabic locale for an unavailable date (caller shows the AR fallback)', () => { expect(formatDateTimeSafe(0, 'ar')).toBeNull() expect(formatDateTimeSafe(null, 'ar')).toBeNull() }) })