43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package metrics
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"veza-backend-api/internal/errors"
|
|
)
|
|
|
|
func TestRecordErrorPrometheus(t *testing.T) {
|
|
// Enregistrer quelques erreurs
|
|
RecordErrorPrometheus(errors.ErrCodeNotFound, 404)
|
|
RecordErrorPrometheus(errors.ErrCodeValidation, 400)
|
|
RecordErrorPrometheus(errors.ErrCodeNotFound, 404)
|
|
|
|
// Les métriques Prometheus sont enregistrées automatiquement
|
|
// On vérifie juste qu'il n'y a pas de panic
|
|
// (les métriques sont vérifiées via l'endpoint /metrics dans les tests d'intégration)
|
|
}
|
|
|
|
func TestRecordErrorPrometheus_MultipleCodes(t *testing.T) {
|
|
testCases := []struct {
|
|
code errors.ErrorCode
|
|
httpStatus int
|
|
}{
|
|
{errors.ErrCodeValidation, 400},
|
|
{errors.ErrCodeUnauthorized, 401},
|
|
{errors.ErrCodeForbidden, 403},
|
|
{errors.ErrCodeNotFound, 404},
|
|
{errors.ErrCodeConflict, 409},
|
|
{errors.ErrCodeRateLimitExceeded, 429},
|
|
{errors.ErrCodeInternal, 500},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(string(rune(tc.code)), func(t *testing.T) {
|
|
// Vérifier qu'il n'y a pas de panic
|
|
assert.NotPanics(t, func() {
|
|
RecordErrorPrometheus(tc.code, tc.httpStatus)
|
|
})
|
|
})
|
|
}
|
|
}
|