It("returns an error", func() { err := agentClient.Start() Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("bad request")) }) }) }) Describe("GetState", func() { Context("when agent responds with a value", func() { BeforeEach(func() { fakeHTTPClient.SetPostBehavior(`{"value":{"job_state":"running","networks":{"private":{"ip":"192.0.2.10"},"public":{"ip":"192.0.3.11"}}}}`, 200, nil) }) It("makes a POST request to the endpoint", func() { stateResponse, err := agentClient.GetState() Expect(err).ToNot(HaveOccurred()) Expect(stateResponse).To(Equal(agentclient.AgentState{ JobState: "running", NetworkSpecs: map[string]agentclient.NetworkSpec{ "private": { IP: "192.0.2.10", }, "public": { IP: "192.0.3.11", }, }, })) Expect(fakeHTTPClient.PostInputs).To(HaveLen(1)) Expect(fakeHTTPClient.PostInputs[0].Endpoint).To(Equal("http://localhost:6305/agent"))