Files
MikrotikManager/tests/e2e/traffic-observation-fixture.ts
T

14 lines
884 B
TypeScript

/** Positive fixtures explicitly declare measured rates; legacy absence is tested separately. */
export function observedTrafficFixturePayload(value: unknown): unknown {
if (Array.isArray(value)) return value.map(observedTrafficFixturePayload)
if (!value || typeof value !== "object") return value
const r = Object.fromEntries(Object.entries(value).map(([key, v]) => [key, observedTrafficFixturePayload(v)]))
if ("rxNow" in r && "txNow" in r && "rxTotal" in r && "txTotal" in r && Array.isArray(r.rxSeries) && Array.isArray(r.txSeries) && !("observations" in r)) {
r.volumeUnit = "GiB"
r.observations = { rxNow: true, txNow: true, sampledAt: "2026-10-12T12:00:00Z",
rxSeries: r.rxSeries.map(v => typeof v === "number" && Number.isFinite(v) && v >= 0),
txSeries: r.txSeries.map(v => typeof v === "number" && Number.isFinite(v) && v >= 0) }
}
return r
}