Select Git revision
db_utils_test.go
-
James Page authoredJames Page authored
db_utils_test.go 2.01 KiB
package db_utils
import (
"testing"
)
func TestPageParams_Validate(t *testing.T) {
tests := []struct {
name string
params PageParams
wantErr bool
}{
{"ValidParams", PageParams{Limit: 10, Offset: 5}, false},
{"NegativeLimit", PageParams{Limit: -1, Offset: 5}, true},
{"NegativeOffset", PageParams{Limit: 10, Offset: -1}, true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.params.Validate()
if (err != nil) != tt.wantErr {
t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}
func TestPageParams_EnforceLimit(t *testing.T) {
tests := []struct {
name string
params PageParams
want int64
}{
{"NoLimit", PageParams{Limit: 0}, 20},
{"NegativeLimit", PageParams{Limit: -5}, 20},
{"PositiveLimit", PageParams{Limit: 10}, 10},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tt.params.EnforceLimit()
if tt.params.Limit != tt.want {
t.Errorf("EnforceLimit() = %v, want %v", tt.params.Limit, tt.want)
}
})
}
}
func TestValidateDateFilters(t *testing.T) {
type args struct {
params any
dateFiltersToValidate []string
}
tests := []struct {
name string
args args
wantErr bool
}{
{
"ValidDateFilter",
args{params: struct {
Date string `json:"date"`
}{Date: "2023-10-01T00:00:00Z"}, dateFiltersToValidate: []string{"date"}},
false,
},
{
"InvalidDateFilter",
args{params: struct {
Date string `json:"date"`
}{Date: "invalid-date"}, dateFiltersToValidate: []string{"date"}},
true,
},
{
"MissingDateFilter",
args{params: struct {
Date string `json:"date"`
}{Date: "2023-10-01T00:00:00Z"}, dateFiltersToValidate: []string{"non_existent_date"}},
false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if err := ValidateDateFilters(tt.args.params, tt.args.dateFiltersToValidate...); (err != nil) != tt.wantErr {
t.Errorf("ValidateDateFilters() error = %v, wantErr %v", err, tt.wantErr)
}
})
}
}