package metrics import ( "testing" "github.com/sony/gobreaker" ) func TestUpdateCircuitBreakerMetrics(t *testing.T) { name := "test-circuit" // Test état Closed counts := gobreaker.Counts{ Requests: 10, TotalSuccesses: 8, TotalFailures: 2, ConsecutiveSuccesses: 5, ConsecutiveFailures: 0, } // Vérifier qu'il n'y a pas d'erreur lors de la mise à jour UpdateCircuitBreakerMetrics(name, counts, gobreaker.StateClosed) // Test état HalfOpen UpdateCircuitBreakerMetrics(name, counts, gobreaker.StateHalfOpen) // Test état Open counts.ConsecutiveFailures = 5 UpdateCircuitBreakerMetrics(name, counts, gobreaker.StateOpen) // Si on arrive ici sans erreur, c'est bon } func TestRecordCircuitBreakerRequest(t *testing.T) { name := "test-request" // Enregistrer différents types de résultats RecordCircuitBreakerRequest(name, "success") RecordCircuitBreakerRequest(name, "failure") RecordCircuitBreakerRequest(name, "rejected") RecordCircuitBreakerRequest(name, "success") // Les métriques sont enregistrées, on vérifie juste qu'il n'y a pas d'erreur // (les valeurs exactes dépendent de l'état global du registre Prometheus) // Si on arrive ici sans erreur, c'est bon }