It("builds a staging recipe", func() { Expect(fakeBackend.BuildRecipeCallCount()).To(Equal(1)) guid, request := fakeBackend.BuildRecipeArgsForCall(0) Expect(guid).To(Equal("a-staging-guid")) Expect(request).To(Equal(stagingRequest)) }) Context("when the recipe was built successfully", func() { var fakeTaskDef = &models.TaskDefinition{Annotation: "test annotation"} BeforeEach(func() { fakeBackend.BuildRecipeReturns(fakeTaskDef, "a-guid", "a-domain", nil) }) It("does not send a staging complete message", func() { Expect(fakeCcClient.StagingCompleteCallCount()).To(Equal(0)) }) It("creates a task on Diego", func() { Expect(fakeDiegoClient.DesireTaskCallCount()).To(Equal(1)) _, _, resultingTaskDef := fakeDiegoClient.DesireTaskArgsForCall(0) Expect(resultingTaskDef).To(Equal(fakeTaskDef)) }) Context("when creating the task succeeds", func() { It("does not send a staging failure response", func() { Expect(fakeCcClient.StagingCompleteCallCount()).To(Equal(0)) }) }) Context("when the task has already been created", func() {