40 lines
894 B
Go
40 lines
894 B
Go
|
|
package app
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
|
||
|
|
"github.com/geo-platform/tenant-api/internal/shared/response"
|
||
|
|
"github.com/stretchr/testify/assert"
|
||
|
|
"github.com/stretchr/testify/require"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestValidateOptionalAdminUserLimit(t *testing.T) {
|
||
|
|
positive := 3
|
||
|
|
zero := 0
|
||
|
|
negative := -1
|
||
|
|
|
||
|
|
tests := []struct {
|
||
|
|
name string
|
||
|
|
value *int
|
||
|
|
wantErr bool
|
||
|
|
}{
|
||
|
|
{name: "null inherits config", value: nil},
|
||
|
|
{name: "positive override", value: &positive},
|
||
|
|
{name: "zero rejected", value: &zero, wantErr: true},
|
||
|
|
{name: "negative rejected", value: &negative, wantErr: true},
|
||
|
|
}
|
||
|
|
|
||
|
|
for _, tt := range tests {
|
||
|
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
|
err := validateOptionalAdminUserLimit("brand_limit", tt.value)
|
||
|
|
if !tt.wantErr {
|
||
|
|
require.NoError(t, err)
|
||
|
|
return
|
||
|
|
}
|
||
|
|
var appErr *response.AppError
|
||
|
|
require.ErrorAs(t, err, &appErr)
|
||
|
|
assert.Equal(t, "invalid_limit", appErr.Message)
|
||
|
|
})
|
||
|
|
}
|
||
|
|
}
|