mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-08-31 01:56:02 +00:00
test: skip the live Frankfurter fetch so FX moves can't shift assertions
Mirrors the pricing guard: CODEBURN_FX_NO_FETCH short-circuits getExchangeRate after the cache read and before the fetch, returning the same USD-equivalent rate an unreachable network already yields. Tests that seed their own exchange-rate.json (serve-stdio's EUR case) keep working unchanged.
This commit is contained in:
parent
4866332b91
commit
577ff0b9ee
2 changed files with 8 additions and 0 deletions
|
|
@ -114,6 +114,11 @@ async function getExchangeRate(code: string): Promise<number> {
|
|||
const cached = await loadCachedRate(code)
|
||||
if (cached) return cached
|
||||
|
||||
// Test-only escape hatch, set for the whole suite in
|
||||
// tests/setup/env-isolation.ts: skip the live Frankfurter fetch so a real FX
|
||||
// move can't shift assertions. Same fallback an unreachable network gets.
|
||||
if (process.env['CODEBURN_FX_NO_FETCH']) return 1
|
||||
|
||||
let rate: number
|
||||
try {
|
||||
rate = await fetchRate(code)
|
||||
|
|
|
|||
|
|
@ -110,6 +110,9 @@ function applyIsolation(): void {
|
|||
// 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'
|
||||
// Same for FX: skip the live Frankfurter fetch and fall back to the
|
||||
// USD-equivalent rate unless a test seeds its own exchange-rate.json cache.
|
||||
process.env['CODEBURN_FX_NO_FETCH'] = '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