11 lines
1.1 KiB
TypeScript
11 lines
1.1 KiB
TypeScript
import assert from "node:assert/strict"
|
|
import {test} from "node:test"
|
|
import {getSidebarCounts,getSidebarGreCount} from "./sidebar-counts"
|
|
test("sidebar unknown counts and partial GRE never become confirmed zeros",async()=>{
|
|
const original=globalThis.fetch;try{const signal=new AbortController().signal;globalThis.fetch=async()=>Response.json({servers:0,filterRules:0,uptimeProbes:0,uptimeSpeedProbes:0,monitoringItems:0,recursiveRoutes:0});const counts=await getSidebarCounts("https://backend.test",signal);assert.equal(counts.servers,0);assert.equal(counts.users,undefined)
|
|
for(const raw of [{},{servers:-1}]){globalThis.fetch=async()=>Response.json(raw);await assert.rejects(getSidebarCounts("https://backend.test",signal),/не подтверждены/)}
|
|
for(const raw of [{},{tunnels:null},{tunnels:[],failures:[{error:"offline"}]}]){globalThis.fetch=async()=>Response.json(raw);await assert.rejects(getSidebarGreCount("https://backend.test",signal),/не подтверждён/)}
|
|
globalThis.fetch=async()=>Response.json({tunnels:[],failures:[]});assert.equal(await getSidebarGreCount("https://backend.test",signal),0)
|
|
}finally{globalThis.fetch=original}
|
|
})
|