From 5a321ffa1dc455e2c201f3e21e404b2b1fab5130 Mon Sep 17 00:00:00 2001 From: jgrusewski Date: Fri, 13 Mar 2026 11:50:14 +0100 Subject: [PATCH] fix(trading_engine): tolerate AlreadyReg in metrics initialization test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Prometheus registry.register() returns AlreadyReg when another test thread triggers the lazy_static counters first. Both Ok and AlreadyReg are valid — only hard errors indicate a real problem. Co-Authored-By: Claude Opus 4.6 --- crates/trading_engine/src/types/metrics.rs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/crates/trading_engine/src/types/metrics.rs b/crates/trading_engine/src/types/metrics.rs index c766280ba..89b8e369f 100644 --- a/crates/trading_engine/src/types/metrics.rs +++ b/crates/trading_engine/src/types/metrics.rs @@ -1311,7 +1311,18 @@ mod tests { #[test] fn test_metrics_initialization() { - assert!(initialize_metrics().is_ok()); + // initialize_metrics() returns AlreadyReg if another test in this + // process already triggered the lazy_static counters. Both Ok and + // AlreadyReg are acceptable — only a hard error would be a bug. + let result = initialize_metrics(); + assert!( + result.is_ok() + || result + .as_ref() + .err() + .map_or(false, |e| format!("{e}").contains("already")), + "initialize_metrics failed with unexpected error: {result:?}" + ); } #[test]