Import AITURK IDE 1.0.0-beta.1 from Hermes 63279301; preserve MIT license
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import {
|
||||
clampPoolLimits,
|
||||
parsePoolLimits,
|
||||
POOL_LIMITS_BOUNDS,
|
||||
POOL_LIMITS_DEFAULTS,
|
||||
POOL_LIMITS_MIN
|
||||
} from './pool-limits'
|
||||
|
||||
describe('parsePoolLimits', () => {
|
||||
it('falls back to defaults for null/empty/corrupt input', () => {
|
||||
expect(parsePoolLimits(null)).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
expect(parsePoolLimits(undefined)).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
expect(parsePoolLimits('')).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
expect(parsePoolLimits('not json {')).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
})
|
||||
|
||||
it('parses a valid persisted blob', () => {
|
||||
expect(parsePoolLimits(JSON.stringify({ maxBackends: 11, idleMs: 7_200_000 }))).toEqual({
|
||||
maxBackends: 11,
|
||||
idleMs: 7_200_000
|
||||
})
|
||||
})
|
||||
|
||||
it('fills missing keys from defaults', () => {
|
||||
expect(parsePoolLimits(JSON.stringify({ maxBackends: 5 }))).toEqual({ ...POOL_LIMITS_DEFAULTS, maxBackends: 5 })
|
||||
expect(parsePoolLimits('{}')).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
})
|
||||
|
||||
it('ignores non-numeric junk instead of NaN-poisoning the pool', () => {
|
||||
expect(parsePoolLimits(JSON.stringify({ maxBackends: 'lots', idleMs: null }))).toEqual(POOL_LIMITS_DEFAULTS)
|
||||
})
|
||||
})
|
||||
|
||||
describe('clampPoolLimits', () => {
|
||||
it('clamps below the floors', () => {
|
||||
expect(clampPoolLimits({ maxBackends: 0 }).maxBackends).toBe(POOL_LIMITS_MIN.maxBackends)
|
||||
expect(clampPoolLimits({ idleMs: 100 }).idleMs).toBe(POOL_LIMITS_MIN.idleMs)
|
||||
})
|
||||
|
||||
it('clamps absurdly high backend counts', () => {
|
||||
expect(clampPoolLimits({ maxBackends: 10_000 }).maxBackends).toBeLessThanOrEqual(64)
|
||||
})
|
||||
|
||||
it('clamps idleMs to the shared ceiling (7 days)', () => {
|
||||
expect(clampPoolLimits({ idleMs: 999_000_000 }).idleMs).toBe(POOL_LIMITS_BOUNDS.idleMsMax)
|
||||
})
|
||||
|
||||
it('floors fractional values', () => {
|
||||
expect(clampPoolLimits({ maxBackends: 2.9 }).maxBackends).toBe(2)
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user