52 lines
1.6 KiB
Go
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)
|
|
}
|
|
}
|