Files
orca/src/shared/timer-delay.test.ts
T
Jinjing 76b2a3b44d fix(cli): bound orchestration ask timeouts (#10689)
* fix(cli): bound orchestration ask timeouts

* fix(cli): harden remote timeout boundaries
2026-07-26 12:50:05 -07:00

58 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
isSafeTimerDelayMs,
MAX_TIMER_DELAY_MS,
parsePositiveSafeIntegerNumericText,
parsePositiveSafeIntegerText
} from './timer-delay'
describe('timer delay policy', () => {
it.each([0, 1, MAX_TIMER_DELAY_MS])('accepts timer delay %s', (value) => {
expect(isSafeTimerDelayMs(value)).toBe(true)
})
it.each([-1, 1.5, MAX_TIMER_DELAY_MS + 1, Number.MAX_SAFE_INTEGER + 1])(
'rejects timer delay %s',
(value) => {
expect(isSafeTimerDelayMs(value)).toBe(false)
}
)
it.each([
['1', 1],
['00123', 123],
['+1000', 1_000],
['1000.0', 1_000],
['1e3', 1_000],
['.1e4', 1_000],
['0x3e8', 1_000],
['0b1000', 8],
['0o10', 8],
[String(Number.MAX_SAFE_INTEGER), Number.MAX_SAFE_INTEGER]
])('parses exact positive safe integer text %s', (raw, expected) => {
expect(parsePositiveSafeIntegerText(raw)).toBe(expected)
})
it.each(['', '0', '-1', '1.5', '.1', '1e-1', '9007199254740991.1', '9007199254740992'])(
'rejects inexact or unsafe integer text %s',
(raw) => {
expect(parsePositiveSafeIntegerText(raw)).toBeNull()
}
)
it.each([
['+1000', 1_000],
['1000.0', 1_000],
['1e3', 1_000]
])('parses CLI-compatible positive integer text %s', (raw, expected) => {
expect(parsePositiveSafeIntegerNumericText(raw)).toBe(expected)
})
it.each(['', '0', '-1', '1.5', 'Infinity', '9007199254740992'])(
'rejects invalid CLI-compatible integer text %s',
(raw) => {
expect(parsePositiveSafeIntegerNumericText(raw)).toBeNull()
}
)
})