my-homelab-configs/cmd/jeannie-core/main_test.go

45 lines
1.2 KiB
Go

package main
import (
"bytes"
"strings"
"testing"
)
func TestReportRenderProblemsOnly(t *testing.T) {
input := strings.Join([]string{
"ok\tArea\tHealthy\tok\t\t\tgraph\tquery",
"warn\tArea\tWarning\tneeds attention\tdetail\tfix\tgraph\tquery",
"",
}, "\n")
var output bytes.Buffer
if err := runReportRender([]string{"--title", "Unit Report", "--only", "problems"}, strings.NewReader(input), &output); err != nil {
t.Fatal(err)
}
got := output.String()
if strings.Contains(got, "Healthy") {
t.Fatalf("problems-only report included ok row:\n%s", got)
}
for _, want := range []string{"Unit Report", "warn=1", "Warning", "Next Fix", "fix"} {
if !strings.Contains(got, want) {
t.Fatalf("report missing %q:\n%s", want, got)
}
}
}
func TestReportRenderHidesOKGraphAndQuery(t *testing.T) {
input := "ok\tArea\tHealthy\tok\tdetail\tfix\tgraph\tquery\n"
var output bytes.Buffer
if err := runReportRender([]string{"--title", "Unit Report", "--only", "all", "--details"}, strings.NewReader(input), &output); err != nil {
t.Fatal(err)
}
got := output.String()
if strings.Contains(got, "graph:") || strings.Contains(got, "query:") {
t.Fatalf("ok row leaked graph/query links:\n%s", got)
}
}