hermes-agent/apps/desktop/src/lib/time.test.ts
hermes-seaeye[bot] 0ec4a873c1
fmt(js): npm run fix on merge (#69562)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-22 19:01:09 +00:00

32 lines
904 B
TypeScript

import { describe, expect, it } from 'vitest'
import { DAY, formatAgo, HOUR, MINUTE, SECOND } from './time'
const labels = {
ageNow: 'now',
ageSeconds: (s: number) => `${s}s ago`,
ageMinutes: (m: number) => `${m}m ago`,
ageHours: (h: number) => `${h}h ago`,
ageDays: (d: number) => `${d}d ago`
}
const now = 1_000 * DAY
const ago = (delta: number) => formatAgo(now - delta, labels, now)
describe('formatAgo', () => {
it('reads "now" under two seconds, then seconds', () => {
expect(ago(0)).toBe('now')
expect(ago(1.5 * SECOND)).toBe('now')
expect(ago(5 * SECOND)).toBe('5s ago')
})
it('buckets to the coarsest unit, floored', () => {
expect(ago(3 * MINUTE)).toBe('3m ago')
expect(ago(2 * HOUR + 59 * MINUTE)).toBe('2h ago')
expect(ago(5 * DAY)).toBe('5d ago')
})
it('clamps future timestamps to "now"', () => {
expect(ago(-HOUR)).toBe('now')
})
})