import { describe, expect, it } from 'vitest';
import { formatTimestamp, workStatusLabel } from './utils.js';
function localDatePrefixFromMillis(ts) {
    const d = new Date(ts);
    const yyyy = d.getFullYear();
    const mm = String(d.getMonth() + 1).padStart(2, '0');
    const dd = String(d.getDate()).padStart(2, '0');
    return `${yyyy}-${mm}-${dd}`;
}
describe('formatTimestamp', () => {
    it('formats millisecond timestamp', () => {
        const ts = new Date('2026-01-15T00:30:00Z').getTime();
        const result = formatTimestamp(ts);
        expect(result).toMatch(new RegExp(`^${localDatePrefixFromMillis(ts)}\\s`));
    });
    it('formats second timestamp', () => {
        const millis = new Date('2026-06-01T12:00:00Z').getTime();
        const ts = Math.floor(millis / 1000);
        const result = formatTimestamp(ts);
        expect(result).toMatch(new RegExp(`^${localDatePrefixFromMillis(millis)}\\s`));
    });
    it('returns empty for null/undefined/0', () => {
        expect(formatTimestamp(null)).toBe('');
        expect(formatTimestamp(undefined)).toBe('');
        expect(formatTimestamp(0)).toBe('');
        expect(formatTimestamp('')).toBe('');
    });
    it('passes through readable date strings', () => {
        expect(formatTimestamp('2026-03-20 23:59')).toBe('2026-03-20 23:59');
    });
});
describe('workStatusLabel', () => {
    it('maps numeric status codes', () => {
        expect(workStatusLabel(0)).toBe('未交');
        expect(workStatusLabel(1)).toBe('已交');
        expect(workStatusLabel(2)).toBe('已批阅');
    });
    it('passes through string status', () => {
        expect(workStatusLabel('已交')).toBe('已交');
    });
    it('returns 未知 for empty/null', () => {
        expect(workStatusLabel(null)).toBe('未知');
        expect(workStatusLabel('')).toBe('未知');
    });
});
