}) Describe("VersionDownTo", func() { Context("V1", func() { BeforeEach(func() { task.Action = models.WrapAction(models.Timeout( &models.RunAction{ Path: "/the/path", User: "******", }, 10*time.Millisecond, )) }) It("converts TimeoutMs to Timeout in Nanoseconds", func() { task.VersionDownTo(format.V1) Expect(task.GetAction().GetTimeoutAction().DeprecatedTimeoutNs).To(BeEquivalentTo(10 * time.Millisecond)) }) }) Context("V0", func() { var ( downloadAction1, downloadAction2 *models.DownloadAction ) Context("timeouts", func() { BeforeEach(func() { task.Action = models.WrapAction(models.Timeout( &models.RunAction{ Path: "/the/path", User: "******",
task2.CachedDependencies = []*models.CachedDependency{ {Name: "name-2", From: "from-2", To: "to-2", CacheKey: "cache-key-2", LogSource: "log-source-2"}, {Name: "name-3", From: "from-3", To: "to-3", CacheKey: "cache-key-3", LogSource: "log-source-3"}, } }) It("translates the cache dependencies into download actions", func() { Expect(responseRecorder.Code).To(Equal(http.StatusOK)) response := models.TasksResponse{} err := response.Unmarshal(responseRecorder.Body.Bytes()) Expect(err).NotTo(HaveOccurred()) Expect(response.Error).To(BeNil()) Expect(response.Tasks).To(HaveLen(2)) Expect(response.Tasks[0]).To(Equal(task1.VersionDownTo(format.V0))) Expect(response.Tasks[1]).To(Equal(task2.VersionDownTo(format.V0))) }) }) }) Context("when the DB returns an unrecoverable error", func() { BeforeEach(func() { controller.TasksReturns(nil, models.NewUnrecoverableError(nil)) }) It("logs and writes to the exit channel", func() { Eventually(logger).Should(gbytes.Say("unrecoverable-error")) Eventually(exitCh).Should(Receive()) }) })