mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-22 15:05:16 +00:00
test: price off the bundled snapshot so upstream reprices can't turn tests red
loadPricing() fetched the live LiteLLM table during tests and live data wins over the bundled snapshot, so DeepSeek v4 assertions went red when upstream dropped the off-peak discount. CODEBURN_PRICING_SNAPSHOT_ONLY skips the fetch; env-isolation sets it for the whole suite.
This commit is contained in:
parent
a48d78f9d2
commit
4866332b91
2 changed files with 21 additions and 8 deletions
|
|
@ -225,21 +225,30 @@ function mergeSnapshotFallbacks(pricing: Map<string, ModelCosts>): Map<string, M
|
|||
return applyBuiltinPriceOverrides(pricing)
|
||||
}
|
||||
|
||||
function setPricingCache(pricing: Map<string, ModelCosts>): void {
|
||||
pricingCache = pricing
|
||||
sortedPricingKeys = null
|
||||
lowercasePricingIndex = null
|
||||
knownNamespaces = null
|
||||
}
|
||||
|
||||
export async function loadPricing(): Promise<void> {
|
||||
const cached = await loadCachedPricing()
|
||||
if (cached) {
|
||||
pricingCache = mergeSnapshotFallbacks(cached)
|
||||
sortedPricingKeys = null
|
||||
lowercasePricingIndex = null
|
||||
knownNamespaces = null
|
||||
setPricingCache(mergeSnapshotFallbacks(cached))
|
||||
return
|
||||
}
|
||||
|
||||
// Test-only escape hatch, set for the whole suite in
|
||||
// tests/setup/env-isolation.ts: skip the live LiteLLM fetch and price purely
|
||||
// off the bundled snapshot, so an upstream reprice can't turn tests red.
|
||||
if (process.env['CODEBURN_PRICING_SNAPSHOT_ONLY']) {
|
||||
setPricingCache(mergeSnapshotFallbacks(new Map()))
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
pricingCache = mergeSnapshotFallbacks(await fetchAndCachePricing())
|
||||
sortedPricingKeys = null
|
||||
lowercasePricingIndex = null
|
||||
knownNamespaces = null
|
||||
setPricingCache(mergeSnapshotFallbacks(await fetchAndCachePricing()))
|
||||
} catch {
|
||||
// snapshot already loaded at init; nothing more to do
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,6 +106,10 @@ function applyIsolation(): void {
|
|||
if (original === undefined) delete process.env[key]
|
||||
else process.env[key] = original
|
||||
}
|
||||
// Price off the bundled LiteLLM snapshot only. Without this, loadPricing()
|
||||
// fetches the live upstream table, so a mid-week reprice by a provider turns
|
||||
// pricing assertions red with no local change.
|
||||
process.env['CODEBURN_PRICING_SNAPSHOT_ONLY'] = '1'
|
||||
// Pin the timezone so date grouping is deterministic regardless of the dev's
|
||||
// shell TZ. Clearing it is not enough (Node falls back to the OS zone); a
|
||||
// non-UTC TZ would otherwise shift day buckets versus a clean CI runner. A
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue