reqCount = make(chan struct{}) fakeServer.RouteToHandler("POST", "/the-callback/url", func(w http.ResponseWriter, req *http.Request) { w.WriteHeader(<-statusCodes) }) callbackURL = fakeServer.URL() + "/the-callback/url" taskDB = new(dbfakes.FakeTaskDB) taskDB.ResolvingTaskReturns(nil) taskDB.DeleteTaskReturns(nil) }) simulateTaskCompleting := func(signals <-chan os.Signal, ready chan<- struct{}) error { close(ready) task = model_helpers.NewValidTask("the-task-guid") task.CompletionCallbackUrl = callbackURL taskworkpool.HandleCompletedTask(logger, httpClient, taskDB, task) return nil } var process ifrit.Process JustBeforeEach(func() { process = ifrit.Invoke(ifrit.RunFunc(simulateTaskCompleting)) }) AfterEach(func() { ginkgomon.Kill(process) }) Context("when the task has a completion callback URL", func() { BeforeEach(func() {
EgressRules: []*models.SecurityGroupRule{ { Protocol: "tcp", Destinations: []string{"0.0.0.0/0"}, Ports: []uint32{80, 443}, Log: true, }, }, } Expect(actualResponse).To(Equal(expectedResponse)) }) Context("when the task has a CompletionCallbackURL", func() { BeforeEach(func() { task.CompletionCallbackUrl = "http://example.com/the-path" }) It("serializes the completion callback URL", func() { Expect(serialization.TaskToResponse(task).CompletionCallbackURL).To(Equal("http://example.com/the-path")) }) }) Context("when the task doesn't have a CompletionCallbackURL", func() { It("leaves the completion callback URL blank", func() { Expect(serialization.TaskToResponse(task).CompletionCallbackURL).To(Equal("")) }) }) }) Describe("TaskFromRequest", func() {