}) It("aborts and returns a wrapped error", func() { err := controller.Del(payload) Expect(err).To(MatchError("deletor: some-deletor-error")) Expect(datastore.DeleteCallCount()).To(Equal(0)) }) }) It("deletes the container from the datastore", func() { err := controller.Del(payload) Expect(err).NotTo(HaveOccurred()) Expect(datastore.DeleteCallCount()).To(Equal(1)) containerID := datastore.DeleteArgsForCall(0) Expect(containerID).To(Equal("some-container-id")) }) Context("when deleting from the datastore fails", func() { BeforeEach(func() { datastore.DeleteReturns(errors.New("some-datastore-error")) }) It("returns a wrapped error", func() { err := controller.Del(payload) Expect(err).To(MatchError("datastore delete: some-datastore-error")) }) }) It("releases the IP allocation", func() {