package main import ( "os" "path/filepath" "testing" ) func TestLoadPlanCatalogEnv(t *testing.T) { t.Setenv("CARLOS_PLAN_CATALOG", "") if c, err := planCatalog(); c != nil || err != nil { t.Fatalf("unset: %v, %v", c, err) } t.Setenv("CARLOS_PLAN_CATALOG", "../../internal/plans/testdata/example-catalog.json") if c, err := planCatalog(); c == nil || err != nil { t.Fatalf("example: %v, %v", c, err) } bad := filepath.Join(t.TempDir(), "bad.json") if err := os.WriteFile(bad, []byte(`{"version": ""}`), 0o600); err != nil { t.Fatal(err) } for _, p := range []string{bad, filepath.Join(t.TempDir(), "missing.json")} { t.Setenv("CARLOS_PLAN_CATALOG", p) if c, err := planCatalog(); c != nil || err == nil { t.Fatalf("%s: %v, %v; want an error", p, c, err) } } }