fix: follow live request results and prioritize usable groups

This commit is contained in:
cneicy committed 2026-09-26 14:49:12 +08:00
1 parent 5152a4080e
commit d09216bbde
12 files changed
+257 -86

No files matched your search

@@ -2,6 +2,7 @@ import { describe, expect, it } from 'vitest'
import {
cacheHitRates,
compareStatusMonitors,
formatCacheHitRate,
getOverallStatus,
getProbeInterval,
@@ -9,6 +10,32 @@ import {
} from '../lib/status'
describe('group status mapping', () => {
it('prioritizes normal and degraded groups together, then Astra', () => {
const rows = [
{ name: 'down-astra', status: 0, uptime: 0, models: ['gpt-6-astra'] },
{ name: 'normal-luna', status: 1, uptime: 1, models: ['gpt-6-luna'] },
{
name: 'partial-astra',
status: 2,
uptime: 0.8,
models: ['gpt-6-astra'],
},
{ name: 'normal-astra', status: 1, uptime: 1, models: ['gpt-6-astra'] },
{ name: 'degraded-luna', status: 3, uptime: 0.8, models: ['gpt-6-luna'] },
{ name: 'unknown-luna', status: -1, uptime: 0, models: ['gpt-6-luna'] },
]
expect(
[...rows].sort(compareStatusMonitors).map((row) => row.name)
).toEqual([
'partial-astra',
'normal-astra',
'normal-luna',
'degraded-luna',
'down-astra',
'unknown-luna',
])
})
it('maps down monitors to error', () => {
expect(statusKind(0)).toBe('error')
})