} var err error specJSON, err = json.Marshal(spec) Expect(err).ToNot(HaveOccurred()) }) Context("when agent responds with a value", func() { BeforeEach(func() { fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":{"agent_task_id":"fake-agent-task-id","state":"running"}}`, 200, nil) fakeHTTPClient.SetPostBehavior(`{"value":"stopped"}`, 200, nil) }) It("makes a POST request to the endpoint", func() { err := agentClient.Apply(spec) Expect(err).ToNot(HaveOccurred()) Expect(fakeHTTPClient.PostInputs).To(HaveLen(4)) Expect(fakeHTTPClient.PostInputs[0].Endpoint).To(Equal("http://localhost:6305/agent")) var request AgentRequestMessage err = json.Unmarshal(fakeHTTPClient.PostInputs[0].Payload, &request) Expect(err).ToNot(HaveOccurred()) var specArgument interface{} err = json.Unmarshal(specJSON, &specArgument) Expect(err).ToNot(HaveOccurred()) Expect(request).To(Equal(AgentRequestMessage{ Method: "apply",
Expect(err).NotTo(HaveOccurred()) applySpec = ApplySpec{ Deployment: "fake-deployment-name", Index: 0, ConfigurationHash: "some-configuration-hash", } }) AfterEach(func() { err := testEnvironment.StopAgentTunnel() Expect(err).NotTo(HaveOccurred()) err = testEnvironment.StopAgent() Expect(err).ToNot(HaveOccurred()) err = testEnvironment.DetachDevice("/dev/sdh") Expect(err).ToNot(HaveOccurred()) }) It("stops monit service", func() { err := agentClient.Apply(applySpec) Expect(err).To(BeNil()) result, _ := testEnvironment.RunCommand("sudo sv status monit") Expect(result).To(ContainSubstring("down: monit: ")) }) }) })