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, }, })) }) }) Context("when VM does not exist (deleted manually)", func() { BeforeEach(func() { fakeVM.ExistsFound = false fakeVM.DeleteErr = bicloud.NewCPIError("delete_vm", bicloud.CmdError{ Type: bicloud.VMNotFoundError, Message: "fake-vm-not-found-message", }) }) It("deletes existing vm", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage) Expect(err).NotTo(HaveOccurred()) Expect(fakeVM.DeleteCalled).To(Equal(1)) }) It("does not contact the agent", func() { err := instance.Delete(pingTimeout, pingDelay, fakeStage)