ops_repo_args_test.go 962 B

12345678910111213141516171819202122232425262728293031323334353637
  1. //go:build unit
  2. package repository
  3. import (
  4. "database/sql"
  5. "testing"
  6. "github.com/Wei-Shaw/sub2api/internal/service"
  7. "github.com/stretchr/testify/require"
  8. )
  9. func TestOpsInsertErrorLogArgsPreservesExplicitZeroUpstreamStatus(t *testing.T) {
  10. zero := 0
  11. args := opsInsertErrorLogArgs(&service.OpsInsertErrorLogInput{UpstreamStatusCode: &zero})
  12. require.Len(t, args, 38)
  13. encoded, ok := args[27].(sql.NullInt64)
  14. require.True(t, ok)
  15. require.True(t, encoded.Valid)
  16. require.Zero(t, encoded.Int64)
  17. }
  18. func TestOpsNullableIntPointerDistinguishesNilZeroAndStatus(t *testing.T) {
  19. missing := opsNullableIntPointer(nil).(sql.NullInt64)
  20. require.False(t, missing.Valid)
  21. zeroValue := 0
  22. zero := opsNullableIntPointer(&zeroValue).(sql.NullInt64)
  23. require.True(t, zero.Valid)
  24. require.Zero(t, zero.Int64)
  25. statusValue := 503
  26. status := opsNullableIntPointer(&statusValue).(sql.NullInt64)
  27. require.True(t, status.Valid)
  28. require.EqualValues(t, 503, status.Int64)
  29. }