fix(uptime): сохранить неизвестную скорость и проверить подтверждение теста

This commit is contained in:
Denozordec committed 2026-10-07 14:15:56 +07:00
1 parent 1904c86657
commit 9d5959601f
10 files changed
+160 -58

No files matched your search

+24
View File
@@ -0,0 +1,24 @@
import { z } from "zod"
const metric = z.number().finite().nonnegative().nullable()
const address = z.string().nullable().optional()
const response = z.object({
ok: z.literal(true),
result: z.object({
runId: z.string().min(1),
txAvgMbps: metric,
rxAvgMbps: metric,
raw: z.array(z.record(z.string(), z.unknown())).optional(),
afterBtPing: z.object({ rttMs: metric, lossPct: z.number().finite().min(0).max(100).nullable(), error: z.string().nullable() }).optional(),
srcAddress: address, dstAddress: address,
srcInterfaceAddress: address, dstInterfaceAddress: address,
}),
})
export function parseSpeedRunResponse(raw: unknown, runId: string) {
const parsed = response.safeParse(raw)
if (!parsed.success || parsed.data.result.runId !== runId) {
throw new Error("Некорректное подтверждение speed-test. Результат операции неизвестен")
}
return parsed.data.result
}