Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / shell (push) Canceled after 0s
CI / test (push) Canceled after 0s
CI / frontend (push) Canceled after 0s
CI / golangci-lint (push) Canceled after 0s
Security Scan / backend-security (push) Canceled after 0s
Security Scan / frontend-security (push) Canceled after 0s
38 lines
962 B
Go
38 lines
962 B
Go
//go:build unit
|
|
|
|
package repository
|
|
|
|
import (
|
|
"database/sql"
|
|
"testing"
|
|
|
|
"github.com/Wei-Shaw/sub2api/internal/service"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestOpsInsertErrorLogArgsPreservesExplicitZeroUpstreamStatus(t *testing.T) {
|
|
zero := 0
|
|
args := opsInsertErrorLogArgs(&service.OpsInsertErrorLogInput{UpstreamStatusCode: &zero})
|
|
|
|
require.Len(t, args, 38)
|
|
encoded, ok := args[27].(sql.NullInt64)
|
|
require.True(t, ok)
|
|
require.True(t, encoded.Valid)
|
|
require.Zero(t, encoded.Int64)
|
|
}
|
|
|
|
func TestOpsNullableIntPointerDistinguishesNilZeroAndStatus(t *testing.T) {
|
|
missing := opsNullableIntPointer(nil).(sql.NullInt64)
|
|
require.False(t, missing.Valid)
|
|
|
|
zeroValue := 0
|
|
zero := opsNullableIntPointer(&zeroValue).(sql.NullInt64)
|
|
require.True(t, zero.Valid)
|
|
require.Zero(t, zero.Int64)
|
|
|
|
statusValue := 503
|
|
status := opsNullableIntPointer(&statusValue).(sql.NullInt64)
|
|
require.True(t, status.Valid)
|
|
require.EqualValues(t, 503, status.Int64)
|
|
}
|