14 lines
884 B
TypeScript
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
|
|
}
|