|
- 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())
- }
|