Files
product-issue/tests/installation-limiter.test.ts
T
2026-08-24 17:27:41 +08:00

24 lines
999 B
TypeScript

import { describe, expect, it } from 'vitest'
import { InstallationLimiter } from '../src/server/installation-limiter.js'
describe('InstallationLimiter', () => {
it('enforces a bounded window independently per installation', () => {
const limiter = new InstallationLimiter(2, 1_000)
expect(limiter.consume('first', 0)).toBe(true)
expect(limiter.consume('first', 1)).toBe(true)
expect(limiter.consume('first', 2)).toBe(false)
expect(limiter.consume('second', 2)).toBe(true)
expect(limiter.consume('first', 1_000)).toBe(true)
})
it('fails closed when too many active installation counters exist', () => {
const limiter = new InstallationLimiter(2, 1_000)
for (let index = 0; index < 10_000; index += 1) {
expect(limiter.consume(`installation-${index}`, 0)).toBe(true)
}
expect(limiter.consume('overflow', 1)).toBe(false)
expect(limiter.consume('installation-0', 1)).toBe(true)
expect(limiter.consume('overflow', 1_000)).toBe(true)
})
})