mirror of
https://github.com/MeshCore-Beacon/beacon-web.git
synced 2026-09-04 12:43:42 +00:00
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import { describe, it, expect } from "vitest";
|
|
import { hasTelemetry } from "../../../src/features/stats/transforms";
|
|
import type { TelemetryPoint } from "../../../src/features/stats/types";
|
|
|
|
const empty = (t: number): TelemetryPoint => ({ t, batteryMv: null, airtimeTxPct: null, airtimeRxPct: null, noiseFloorDb: null, uptimeSeconds: null, queueLength: null, receiveErrors: null });
|
|
|
|
describe("hasTelemetry", () => {
|
|
it("is false for no points", () => {
|
|
expect(hasTelemetry([])).toBe(false);
|
|
});
|
|
|
|
it("is false when every metric on every point is null", () => {
|
|
expect(hasTelemetry([empty(1), empty(2)])).toBe(false);
|
|
});
|
|
|
|
it("is true when any metric on any point is a meaningful non-zero value", () => {
|
|
expect(hasTelemetry([empty(1), { ...empty(2), noiseFloorDb: -110 }])).toBe(true);
|
|
});
|
|
|
|
it("is false when every metric is zero (bots / MQTT bridges report all-zero rows)", () => {
|
|
const allZero: TelemetryPoint = { t: 1, batteryMv: 0, airtimeTxPct: 0, airtimeRxPct: 0, noiseFloorDb: 0, uptimeSeconds: 0, queueLength: 0, receiveErrors: 0 };
|
|
expect(hasTelemetry([allZero, allZero])).toBe(false);
|
|
});
|
|
});
|