package main import ( "os" "testing" ) // The health check passes only between the agent saying it takes work and its next start (novox/hq // issue 544). func TestTheAgentIsReadyOnlyOnceItTakesWork(t *testing.T) { t.Setenv("TMPDIR", t.TempDir()) if err := ready(); err == nil { t.Fatal("an agent that never took work is ready") } taking("mesh-build-machine") if err := ready(); err != nil { t.Fatalf("an agent taking work is not ready: %v", err) } // Started again, it is not ready until it binds again. if err := notReady(); err != nil { t.Fatal(err) } if err := ready(); err == nil { t.Fatal("an agent starting again is ready before it takes work") } if err := notReady(); err != nil { t.Fatalf("removing a mark that is not there failed: %v", err) } if _, err := os.Stat(readyMark()); err == nil { t.Fatal("the mark is still there") } }