Files

52 lines
1.6 KiB
Go

package config
import (
"reflect"
"strings"
"testing"
)
func TestExecSandbox_DefaultDisabled(t *testing.T) {
t.Setenv("JWT_SECRET", strings.Repeat("s", 40))
t.Setenv("EXEC_SANDBOX_ENABLED", "false")
t.Setenv("EXEC_SANDBOX_COMMANDS", "")
t.Setenv("EXEC_SANDBOX_ROOTS", "")
t.Setenv("EXEC_SANDBOX_ENV", "")
cfg, err := Load("")
if err != nil {
t.Fatalf("Load() error: %v", err)
}
if cfg.ExecSandbox.Enabled {
t.Errorf("ExecSandbox.Enabled = true, want default false (sandbox closed)")
}
if len(cfg.ExecSandbox.CommandList) != 0 {
t.Errorf("CommandList = %v, want empty", cfg.ExecSandbox.CommandList)
}
}
func TestExecSandbox_EnvOverrides(t *testing.T) {
t.Setenv("JWT_SECRET", strings.Repeat("s", 40))
t.Setenv("EXEC_SANDBOX_ENABLED", "true")
t.Setenv("EXEC_SANDBOX_COMMANDS", "echo,pwd")
t.Setenv("EXEC_SANDBOX_ROOTS", "/tmp/sandbox,/home/me/workspace")
t.Setenv("EXEC_SANDBOX_ENV", "PATH,HOME")
cfg, err := Load("")
if err != nil {
t.Fatalf("Load() error: %v", err)
}
if !cfg.ExecSandbox.Enabled {
t.Errorf("ExecSandbox.Enabled = false, want true")
}
if want := []string{"echo", "pwd"}; !reflect.DeepEqual(cfg.ExecSandbox.CommandList, want) {
t.Errorf("CommandList = %v, want %v", cfg.ExecSandbox.CommandList, want)
}
if want := []string{"/tmp/sandbox", "/home/me/workspace"}; !reflect.DeepEqual(cfg.ExecSandbox.AllowedRoots, want) {
t.Errorf("AllowedRoots = %v, want %v", cfg.ExecSandbox.AllowedRoots, want)
}
if want := []string{"PATH", "HOME"}; !reflect.DeepEqual(cfg.ExecSandbox.AllowedEnv, want) {
t.Errorf("AllowedEnv = %v, want %v", cfg.ExecSandbox.AllowedEnv, want)
}
}