package cli import ( "gitea.maximumdirect.net/eric/audita/v3/internal/core/config" "path/filepath" "testing" ) func TestReportDirectorySelectionOnlyUsesActiveDestination(t *testing.T) { cfg := config.Config{Reporting: config.Reporting{Enabled: true, StdoutDir: "reports"}} if got, err := selectedReportDir(cfg, "", false); err != nil || got != "reports" { t.Fatalf("stdout destination: %q %v", got, err) } if got, err := selectedReportDir(cfg, filepath.Join("out", "corrected.json"), false); err != nil || got != "out" { t.Fatalf("file destination ignored stdout setting: %q %v", got, err) } if got, err := selectedReportDir(cfg, filepath.Join("out", "corrected.json"), true); err != nil || got != "reports" { t.Fatalf("explicit file report directory: %q %v", got, err) } cfg.Reporting.StdoutDir = "" if got, err := selectedReportDir(cfg, filepath.Join("out", "corrected.json"), false); err != nil || got != "out" { t.Fatalf("inactive blank configured report directory rejected for file output: %q %v", got, err) } if _, err := selectedReportDir(cfg, filepath.Join("out", "corrected.json"), true); err == nil { t.Fatal("active explicit blank report directory accepted for file output") } if _, err := selectedReportDir(cfg, "", false); err == nil { t.Fatal("enabled stdout reporting accepted blank destination") } cfg.Reporting.Enabled = false if got, err := selectedReportDir(cfg, filepath.Join("out", "corrected.json"), true); err != nil || got != "" { t.Fatalf("disabled reporting probed destination: %q %v", got, err) } }