Files
sub2api/backend/internal/handler/admin/group_handler_limit_test.go
T

34 lines
1.0 KiB
Go

package admin
import (
"encoding/json"
"testing"
"github.com/stretchr/testify/require"
)
func TestUpdateGroupRequestLimitFieldsTriState(t *testing.T) {
t.Run("omitted means unchanged", func(t *testing.T) {
var req UpdateGroupRequest
require.NoError(t, json.Unmarshal([]byte(`{}`), &req))
require.Nil(t, req.DailyLimitUSD.ToServiceInput())
require.Nil(t, req.WeeklyLimitUSD.ToServiceInput())
require.Nil(t, req.MonthlyLimitUSD.ToServiceInput())
})
t.Run("null means unlimited", func(t *testing.T) {
var req UpdateGroupRequest
require.NoError(t, json.Unmarshal([]byte(`{"daily_limit_usd":null}`), &req))
limit := req.DailyLimitUSD.ToServiceInput()
require.NotNil(t, limit)
require.Negative(t, *limit)
})
t.Run("number is preserved", func(t *testing.T) {
var req UpdateGroupRequest
require.NoError(t, json.Unmarshal([]byte(`{"weekly_limit_usd":0,"monthly_limit_usd":42.5}`), &req))
require.Equal(t, 0.0, *req.WeeklyLimitUSD.ToServiceInput())
require.Equal(t, 42.5, *req.MonthlyLimitUSD.ToServiceInput())
})
}