mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-25 17:18:11 +00:00
32 lines
904 B
TypeScript
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')
|
|
})
|
|
})
|