22 lines
1.7 KiB
TypeScript
22 lines
1.7 KiB
TypeScript
import {test} from "node:test"
|
|
import assert from "node:assert/strict"
|
|
import {buildServerResourceMap,greTunnelProbe} from "./network-map-layout"
|
|
import {mergeGreMetricsWithSpeedProbe} from "./map-gre-speed-probe"
|
|
import {servers,greTunnels} from "./data"
|
|
test("live resources preserve zero, partial poll and unknowns without fake history",()=>{
|
|
const base={...servers[0],cpuLoad:undefined,totalMemory:undefined,freeMemory:undefined,uptime:undefined,polledAt:undefined}
|
|
const unknown=buildServerResourceMap([base])[base.id]
|
|
assert.deepEqual(unknown,{cpu:null,cpuHistory:[],ramTotal:null,ramUsed:null,hddUsed:null,hddTotal:null,uptimeSeconds:null,measuredAt:null,fromPoll:true})
|
|
const partial=buildServerResourceMap([{...base,cpuLoad:0,uptime:"0s",polledAt:"2020-01-01T00:00:00Z"}])[base.id]
|
|
assert.equal(partial.cpu,0);assert.equal(partial.uptimeSeconds,0);assert.equal(partial.measuredAt,"2020-01-01T00:00:00Z");assert.equal(partial.ramUsed,null)
|
|
const memory=buildServerResourceMap([{...base,totalMemory:1048576,freeMemory:1048576,uptime:"bad"}])[base.id]
|
|
assert.equal(memory.ramUsed,0);assert.equal(memory.ramTotal,1);assert.equal(memory.uptimeSeconds,null)
|
|
assert.ok(buildServerResourceMap([base],true)[base.id].cpuHistory.length>0)
|
|
})
|
|
test("live GRE does not hash metrics and probe values retain zero and fractions",()=>{
|
|
const fallback=greTunnelProbe(greTunnels[0]);assert.deepEqual(fallback,{pingMs:null,dlMbps:null,ulMbps:null})
|
|
assert.equal(greTunnelProbe(greTunnels[0],true).pingMs!=null,true)
|
|
const merged=mergeGreMetricsWithSpeedProbe({id:"p",srcServerId:"1",dstServerId:"2",lastPingRttMs:0,lastTxAvgMbps:0,lastRxAvgMbps:0.125},fallback)
|
|
assert.deepEqual(merged,{pingMs:0,dlMbps:0,ulMbps:0.125,hasSpeedMonitor:true})
|
|
})
|