It("logs failed event", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage) Expect(err).ToNot(HaveOccurred()) Expect(fakeStage.PerformCalls[0].Name).To(Equal("Waiting for the agent on VM 'fake-vm-cid'")) Expect(fakeStage.PerformCalls[0].Error).To(HaveOccurred()) Expect(fakeStage.PerformCalls[0].Error.Error()).To(Equal("Agent unreachable: fake-wait-error")) }) }) Context("when deleting VM fails", func() { var ( deleteError = bosherr.Error("fake-delete-error") ) BeforeEach(func() { fakeVM.DeleteErr = deleteError }) It("returns an error", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage) Expect(err).To(HaveOccurred()) Expect(err.Error()).To(ContainSubstring("fake-delete-error")) Expect(fakeStage.PerformCalls).To(Equal([]*fakebiui.PerformCall{ {Name: "Waiting for the agent on VM 'fake-vm-cid'"}, {Name: "Stopping jobs on instance 'fake-job-name/0'"}, { Name: "Deleting VM 'fake-vm-cid'", Error: deleteError, }, }))