openmeter / meter /service_test.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 6)
d6f631f verified
Raw
History Blame Contribute Delete
2.36 kB
package meter
import (
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/openmeterio/openmeter/pkg/pagination"
"github.com/openmeterio/openmeter/pkg/sortx"
)
func TestListMetersParams_Validate_Sort(t *testing.T) {
namespace := "test-ns"
tests := []struct {
name string
params ListMetersParams
wantErr bool
}{
{
name: "no sort",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
},
},
{
name: "sort by key asc",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByKey,
Order: sortx.OrderAsc,
},
},
{
name: "sort by name desc",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByName,
Order: sortx.OrderDesc,
},
},
{
name: "sort by aggregation",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByAggregation,
Order: sortx.OrderAsc,
},
},
{
name: "sort by createdAt",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByCreatedAt,
Order: sortx.OrderAsc,
},
},
{
name: "sort by updatedAt",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByUpdatedAt,
Order: sortx.OrderDesc,
},
},
{
name: "invalid order by field",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderBy("invalid_field"),
Order: sortx.OrderAsc,
},
wantErr: true,
},
{
name: "invalid order direction",
params: ListMetersParams{
Namespace: namespace,
Page: pagination.Page{PageSize: 10, PageNumber: 1},
OrderBy: OrderByKey,
Order: sortx.Order("SIDEWAYS"),
},
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
err := tt.params.Validate()
if tt.wantErr {
require.Error(t, err)
} else {
assert.NoError(t, err)
}
})
}
}