44 lines
1.4 KiB
Go
44 lines
1.4 KiB
Go
//go:build integration
|
|
|
|
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestAVerdictCarriesAProbesFindingsInBrief(t *testing.T) {
|
|
var found []string
|
|
for i := 0; i < 689; i++ {
|
|
found = append(found, fmt.Sprintf("delivery d-%012x has been checking for 13h, past its bound of 45m", i))
|
|
}
|
|
run := doctorRun{Run: "run-1", Probes: []probeVerdict{{ID: "D14", Verdict: "failed", Found: found},
|
|
{ID: "D1", Verdict: "passed"}}}
|
|
answer, err := verdictAnswer(run, time.Now(), "")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
brief := answer["run"].(doctorRun).Probes[0]
|
|
if len(brief.Found) != overviewFindings || brief.FoundCount != 689 || !strings.Contains(brief.More, "probe=D14") {
|
|
t.Fatalf("the verdict carries %d findings of D14, count %d, more %q", len(brief.Found), brief.FoundCount, brief.More)
|
|
}
|
|
if len(run.Probes[0].Found) != 689 {
|
|
t.Fatal("the overview cut the run it was made from")
|
|
}
|
|
whole, err := verdictAnswer(run, time.Now(), "d14")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if p := whole["run"].(doctorRun).Probes; len(p) != 1 || len(p[0].Found) != 689 || p[0].More != "" {
|
|
t.Fatalf("doctor probe=D14 answered %+v", p)
|
|
}
|
|
if _, err := verdictAnswer(run, time.Now(), "D99"); err == nil {
|
|
t.Fatal("a probe the run does not have was answered")
|
|
}
|
|
if !strings.Contains(doctorText(answer), "probe=D14` gives them all") {
|
|
t.Fatalf("the text does not say how to read them all:\n%s", doctorText(answer))
|
|
}
|
|
}
|