Files
MikrotikManager/shared/api/mcp-capacity.test.ts

18 lines
1.4 KiB
TypeScript

import assert from "node:assert/strict"
import {test} from "node:test"
import {mcpPollStorageCapacitySchema} from "@mmapp/contracts/mcp"
import {mcpOverviewSchema} from "./mcp"
const capacity={status:"observed",owner:{used:8,limit:8,remaining:0},global:{exhausted:true,usage:{used:128,limit:128,remaining:0}},retentionDays:14}
test("poll retained capacity validates full counters and hides non-admin global usage",()=>{
assert.deepEqual(mcpPollStorageCapacitySchema.parse(capacity),capacity)
const privateView={...capacity,global:{exhausted:true,usage:null}}
assert.deepEqual(mcpPollStorageCapacitySchema.parse(privateView),privateView)
for(const bad of [{...capacity,owner:{used:8,limit:8,remaining:1}},{...capacity,global:{exhausted:false,usage:capacity.global.usage}},{...capacity,retentionDays:0},{...capacity,owner:{used:9,limit:8,remaining:0}},{status:"unavailable",owner:{used:0,limit:8,remaining:8}}])assert.equal(mcpPollStorageCapacitySchema.safeParse(bad).success,false)
})
test("old overview responses report capacity unavailable instead of inventing free slots",()=>{
const original={connections:1,calls:2,errors:0,approvals:0,running:0,enabled:true,observedAt:new Date().toISOString()}
assert.deepEqual(mcpOverviewSchema.parse(original).pollStorageCapacity,{status:"unavailable"})
assert.deepEqual(mcpOverviewSchema.parse({...original,pollStorageCapacity:capacity}).pollStorageCapacity,capacity)
})