api_key_mapper_last_used_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package dto
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/Wei-Shaw/sub2api/internal/service"
  6. "github.com/stretchr/testify/require"
  7. )
  8. func TestAPIKeyFromService_MapsLastUsedAt(t *testing.T) {
  9. lastUsed := time.Now().UTC().Truncate(time.Second)
  10. lastUsedIP := "203.0.113.10"
  11. src := &service.APIKey{
  12. ID: 1,
  13. UserID: 2,
  14. Key: "sk-map-last-used",
  15. Name: "Mapper",
  16. Status: service.StatusActive,
  17. LastUsedAt: &lastUsed,
  18. LastUsedIP: &lastUsedIP,
  19. CurrentConcurrency: 3,
  20. }
  21. out := APIKeyFromService(src)
  22. require.NotNil(t, out)
  23. require.NotNil(t, out.LastUsedAt)
  24. require.WithinDuration(t, lastUsed, *out.LastUsedAt, time.Second)
  25. require.NotNil(t, out.LastUsedIP)
  26. require.Equal(t, lastUsedIP, *out.LastUsedIP)
  27. require.Equal(t, 3, out.CurrentConcurrency)
  28. }
  29. func TestAPIKeyFromService_MapsNilLastUsedAt(t *testing.T) {
  30. src := &service.APIKey{
  31. ID: 1,
  32. UserID: 2,
  33. Key: "sk-map-last-used-nil",
  34. Name: "MapperNil",
  35. Status: service.StatusActive,
  36. }
  37. out := APIKeyFromService(src)
  38. require.NotNil(t, out)
  39. require.Nil(t, out.LastUsedAt)
  40. require.Nil(t, out.LastUsedIP)
  41. }