Files
bookhoard/internal/handlers/analytics_test.go
T

67 lines
1.2 KiB
Go

package handlers
import (
"testing"
"github.com/jackc/pgx/v5/pgtype"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestParseLimit_Valid(t *testing.T) {
tests := []struct {
name string
input string
expected int32
}{
{"string number", "10", 10},
{"zero", "0", 0},
{"large number", "1000", 1000},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
result, err := parseLimit(tt.input)
require.NoError(t, err)
assert.Equal(t, tt.expected, result)
})
}
}
func TestParseLimit_Invalid(t *testing.T) {
tests := []struct {
name string
input string
}{
{"non-numeric", "abc"},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
_, err := parseLimit(tt.input)
assert.Error(t, err)
})
}
}
func TestFormatUUID(t *testing.T) {
uuidBytes := [16]byte{
0xf4, 0x7a, 0xc1, 0x0b,
0x58, 0xcc,
0x43, 0x72,
0xa5, 0x67,
0x0e, 0x02, 0xb2, 0xc3, 0xd4, 0x79,
}
pgUUID := pgtype.UUID{Bytes: uuidBytes, Valid: true}
result := formatUUID(pgUUID)
assert.Equal(t, "f47ac10b-58cc-4372-a567-0e02b2c3d479", result)
}
func TestFormatUUID_Null(t *testing.T) {
pgUUID := pgtype.UUID{Valid: false}
result := formatUUID(pgUUID)
assert.Equal(t, "", result)
}