67 lines
1.2 KiB
Go
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)
|
|
}
|