Files
goclaw/internal/providers/claude_cli_hooks_test.go
Duy /zuey/ 990fabf94b fix(config): persist shell deny group disables
Squash merge PR #112 after resolving the project changelog conflict with current dev. Local checks passed: config gateway tests, provider/http/tools deny-pattern tests, go build ./..., and go build -tags sqliteonly ./.... PR CI run 26704832350 passed release-versioning, go, and web.
2026-05-31 13:08:24 +07:00

40 lines
1.2 KiB
Go

package providers
import (
"regexp"
"strings"
"testing"
)
func TestGenerateHookScriptUsesConfiguredDenyPatterns(t *testing.T) {
pattern := regexp.MustCompile(`\bpip3?\s+install\b`)
script := generateHookScript("", true, []*regexp.Regexp{pattern})
if !strings.Contains(script, pattern.String()) {
t.Fatalf("hook script missing configured pattern %q", pattern.String())
}
if strings.Contains(script, `^\s*env\s*$`) {
t.Fatalf("hook script included default env_dump pattern when configured patterns were supplied")
}
}
func TestGenerateHookScriptAllowsConfiguredEmptyDenyPatterns(t *testing.T) {
script := generateHookScript("", true, []*regexp.Regexp{})
if strings.Contains(script, `^\s*env\s*$`) {
t.Fatalf("hook script included default env_dump pattern for explicitly empty configured patterns")
}
if strings.Contains(script, `\bpip3?\s+install\b`) {
t.Fatalf("hook script included package-install pattern for explicitly empty configured patterns")
}
}
func TestGenerateHookScriptDefaultsWhenNoConfiguredDenyPatterns(t *testing.T) {
script := generateHookScript("", true)
if !strings.Contains(script, `^\s*env\s*$`) {
t.Fatalf("hook script missing default env_dump pattern")
}
}