package sandbox import ( "context" "testing" "go.starlark.net/starlark" "armature/store" ) func execWithSettings(t *testing.T, caps map[string]bool, script string) (*Result, error) { t.Helper() ctx := context.Background() mod := BuildSettingsModule(ctx, store.Stores{}, "", "", "", caps) sb := New(DefaultConfig()) return sb.Exec(ctx, "test.star", script, map[string]starlark.Value{ "settings": mod, }) } func TestHasCapability_True(t *testing.T) { caps := map[string]bool{"postgres": true, "pgvector": true} result, err := execWithSettings(t, caps, ` result = settings.has_capability("pgvector") `) if err != nil { t.Fatalf("exec error: %v", err) } v := result.Globals["result"] if v != starlark.True { t.Errorf("has_capability('pgvector') = %v, want True", v) } } func TestHasCapability_False(t *testing.T) { caps := map[string]bool{"postgres": true, "pgvector": false} result, err := execWithSettings(t, caps, ` result = settings.has_capability("pgvector") `) if err != nil { t.Fatalf("exec error: %v", err) } v := result.Globals["result"] if v != starlark.False { t.Errorf("has_capability('pgvector') = %v, want False", v) } } func TestHasCapability_UnknownCap(t *testing.T) { caps := map[string]bool{"postgres": true} result, err := execWithSettings(t, caps, ` result = settings.has_capability("gpu") `) if err != nil { t.Fatalf("exec error: %v", err) } v := result.Globals["result"] if v != starlark.False { t.Errorf("has_capability('gpu') = %v, want False", v) } } func TestHasCapability_NilCaps(t *testing.T) { result, err := execWithSettings(t, nil, ` result = settings.has_capability("postgres") `) if err != nil { t.Fatalf("exec error: %v", err) } v := result.Globals["result"] if v != starlark.False { t.Errorf("has_capability with nil caps = %v, want False", v) } }