api_key_handler_validation_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. //go:build unit
  2. package handler
  3. import (
  4. "math"
  5. "testing"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestValidateAPIKeyCreateRequest(t *testing.T) {
  9. zero, large, negative, nan, inf := 0.0, 1e100, -1.0, math.NaN(), math.Inf(1)
  10. positiveDays, zeroDays, negativeDays := 1, 0, -1
  11. require.NoError(t, validateAPIKeyCreateRequest(CreateAPIKeyRequest{}))
  12. require.NoError(t, validateAPIKeyCreateRequest(CreateAPIKeyRequest{Quota: &zero, RateLimit5h: &large, ExpiresInDays: &positiveDays}))
  13. for _, req := range []CreateAPIKeyRequest{
  14. {Quota: &negative},
  15. {Quota: &nan},
  16. {RateLimit5h: &inf},
  17. {RateLimit1d: &negative},
  18. {RateLimit7d: &negative},
  19. {ExpiresInDays: &zeroDays},
  20. {ExpiresInDays: &negativeDays},
  21. } {
  22. require.Error(t, validateAPIKeyCreateRequest(req))
  23. }
  24. }
  25. func TestValidateAPIKeyUpdateRequest(t *testing.T) {
  26. zero, large, negative, nan, inf := 0.0, 1e100, -1.0, math.NaN(), math.Inf(-1)
  27. require.NoError(t, validateAPIKeyUpdateRequest(UpdateAPIKeyRequest{Quota: &zero, RateLimit7d: &large}))
  28. for _, req := range []UpdateAPIKeyRequest{
  29. {Quota: &negative},
  30. {RateLimit5h: &nan},
  31. {RateLimit1d: &inf},
  32. {RateLimit7d: &negative},
  33. } {
  34. require.Error(t, validateAPIKeyUpdateRequest(req))
  35. }
  36. }