package deploy import ( "encoding/json" "testing" ) func TestSpreadStatusLifecycle(t *testing.T) { beginSpreadSweep("ssh", 2) recordSpreadAttempt("10.0.0.2", true, "") recordSpreadAttempt("10.0.0.3", false, "auth failed") raw := GetSpreadStatusJSON() var snap spreadStatusSnapshot if err := json.Unmarshal([]byte(raw), &snap); err != nil { t.Fatal(err) } if snap.HostsTried != 2 { t.Fatalf("hosts_tried = %d", snap.HostsTried) } if snap.Successes != 1 || snap.Errors != 1 { t.Fatalf("successes=%d errors=%d", snap.Successes, snap.Errors) } if snap.InProgress { t.Fatal("expected sweep finished") } if len(snap.Hosts) != 2 { t.Fatalf("hosts len = %d", len(snap.Hosts)) } } func TestSpreadStatusEmptySweep(t *testing.T) { beginSpreadSweep("smb_scm", 0) finishSpreadSweepImmediate() raw := GetSpreadStatusJSON() var snap spreadStatusSnapshot if err := json.Unmarshal([]byte(raw), &snap); err != nil { t.Fatal(err) } if snap.InProgress { t.Fatal("expected not in progress") } }