19 lines
1.6 KiB
TypeScript
19 lines
1.6 KiB
TypeScript
import assert from "node:assert/strict"
|
|
import { trafficBindingStatus } from "./traffic-freshness.js"
|
|
import { parseTrafficFlag } from "./traffic-observation.js"
|
|
const now=Date.parse("2026-10-12T12:00:00Z"),iso=new Date(now).toISOString()
|
|
const last={sampledAt:iso,countersKnown:true,statusKnown:true,running:true,disabled:false}
|
|
const server={enabled:true,updatedAt:iso},settings={enabled:true,intervalSec:30},attempt={serverUpdatedAt:iso,lastAttemptAt:iso,lastSucceededAt:iso,status:"ok",error:null}
|
|
assert.equal(trafficBindingStatus(last,false,server,settings,attempt,now),"online")
|
|
assert.equal(trafficBindingStatus({...last,statusKnown:false},false,server,settings,attempt,now),"unknown")
|
|
assert.equal(trafficBindingStatus({...last,disabled:true},false,server,settings,attempt,now),"offline")
|
|
assert.equal(trafficBindingStatus(last,true,server,settings,attempt,now),"unknown")
|
|
assert.equal(trafficBindingStatus({...last,disabled:true},true,server,settings,attempt,now),"offline")
|
|
for(const status of["error","pending"])assert.equal(trafficBindingStatus(last,false,server,settings,{...attempt,status},now),"unknown")
|
|
assert.equal(trafficBindingStatus(last,false,server,settings,attempt,now+90_001),"unknown")
|
|
assert.equal(trafficBindingStatus(last,false,{...server,enabled:false},settings,attempt,now),"unknown")
|
|
for(const value of[true,"true","yes"])assert.equal(parseTrafficFlag(value),true)
|
|
for(const value of[false,"false","no"])assert.equal(parseTrafficFlag(value),false)
|
|
for(const value of[undefined,null,"bad",{},0,1])assert.throws(()=>parseTrafficFlag(value))
|
|
console.log("binding native status provenance/TTL/peer configuration/boolean guards tests ok")
|