package model import ( "testing" "github.com/stretchr/testify/require" ) func TestSanitizeLikePatternEscapesLiteralCharactersAndRejectsExpensiveWildcards(t *testing.T) { pattern, err := sanitizeLikePattern("api_key!v1") require.NoError(t, err) require.Equal(t, "api!_key!!v1", pattern) pattern, err = sanitizeLikePattern("ab%cd") require.NoError(t, err) require.Equal(t, "ab%cd", pattern) _, err = sanitizeLikePattern("%%") require.Error(t, err) _, err = sanitizeLikePattern("a%b%c%d") require.Error(t, err) _, err = sanitizeLikePattern("a%") require.Error(t, err) } func TestTokenParsersNormalizeIPAndModelLimitFields(t *testing.T) { allowIPs := " 127.0.0.1,\n 10.0.0.1 \n\n" token := Token{AllowIps: &allowIPs, ModelLimits: "gpt-5,claude-sonnet"} require.Equal(t, []string{"127.0.0.1", "10.0.0.1"}, token.GetIpLimits()) require.Equal(t, []string{"gpt-5", "claude-sonnet"}, token.GetModelLimits()) require.Equal(t, map[string]bool{"gpt-5": true, "claude-sonnet": true}, token.GetModelLimitsMap()) token.AllowIps = nil token.ModelLimits = "" require.Empty(t, token.GetIpLimits()) require.Empty(t, token.GetModelLimits()) }