44 lines
1.2 KiB
TypeScript
44 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
|
|
import { formatDateTime, formatPublishedElapsedTime } from '../src/utils/date-time.ts'
|
|
|
|
test('formatPublishedElapsedTime formats elapsed time for worker hall', () => {
|
|
const baseTime = new Date('2026-09-13T10:00:00.000Z').getTime()
|
|
|
|
// Invalid or empty
|
|
assert.equal(formatPublishedElapsedTime(null, baseTime), '')
|
|
assert.equal(formatPublishedElapsedTime('', baseTime), '')
|
|
assert.equal(formatPublishedElapsedTime('invalid-date', baseTime), '')
|
|
|
|
// <1m
|
|
assert.equal(
|
|
formatPublishedElapsedTime(new Date(baseTime - 30 * 1000).toISOString(), baseTime),
|
|
'发布 <1m',
|
|
)
|
|
|
|
// 5m
|
|
assert.equal(
|
|
formatPublishedElapsedTime(new Date(baseTime - 5 * 60 * 1000).toISOString(), baseTime),
|
|
'发布 5m',
|
|
)
|
|
|
|
// 1h
|
|
assert.equal(
|
|
formatPublishedElapsedTime(new Date(baseTime - 60 * 60 * 1000).toISOString(), baseTime),
|
|
'发布 1h',
|
|
)
|
|
|
|
// 1h 25m
|
|
assert.equal(
|
|
formatPublishedElapsedTime(new Date(baseTime - 85 * 60 * 1000).toISOString(), baseTime),
|
|
'发布 1h 25m',
|
|
)
|
|
|
|
// 2d 3h
|
|
assert.equal(
|
|
formatPublishedElapsedTime(new Date(baseTime - (48 + 3) * 3600 * 1000).toISOString(), baseTime),
|
|
'发布 2d 3h',
|
|
)
|
|
})
|