mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-12 20:15:42 +00:00
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.
40 lines
1.2 KiB
Go
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")
|
|
}
|
|
}
|