flybrain/services/bridge/tests/duration.test.ts
acamilo 660c3cf00d
Some checks failed
ci / node 22 (test + typecheck) (push) Has been cancelled
ci / rust stable (cargo test --workspace --release) (push) Has been cancelled
ci / infra/tests/lint.sh (push) Has been cancelled
ci / playwright apps/stage (allowed to fail) (push) Has been cancelled
flybrain v0.4.0: public tree (history retained privately)
2026-09-21 15:09:46 +00:00

25 lines
843 B
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import { formatDuration } from '../src/duration';
void test('formatDuration formats seconds only', () => {
assert.equal(formatDuration(0), '0s');
assert.equal(formatDuration(45), '45s');
assert.equal(formatDuration(59), '59s');
});
void test('formatDuration formats minutes and seconds', () => {
assert.equal(formatDuration(60), '1m 00s');
assert.equal(formatDuration(192), '3m 12s');
assert.equal(formatDuration(3599), '59m 59s');
});
void test('formatDuration formats hours and minutes', () => {
assert.equal(formatDuration(3600), '1h 00m');
assert.equal(formatDuration(3900), '1h 05m');
assert.equal(formatDuration(7384), '2h 03m');
});
void test('formatDuration clamps negative input to 0s', () => {
assert.equal(formatDuration(-5), '0s');
});