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() { err := controller.Del(payload) Expect(err).NotTo(HaveOccurred()) Expect(ipAllocator.ReleaseIPCallCount()).To(Equal(1)) networkID, containerID := ipAllocator.ReleaseIPArgsForCall(0) Expect(networkID).To(Equal("some-network-id")) Expect(containerID).To(Equal("some-container-id")) }) Context("when releasing the IP fails", func() { BeforeEach(func() { ipAllocator.ReleaseIPReturns(errors.New("mango")) }) It("returns a wrapped error", func() { err := controller.Del(payload) Expect(err).To(MatchError("release ip: mango")) }) }) })