}) It("should set the priority to 1", func() { analyzer.Analyze() for _, message := range startMessages() { Ω(message.Priority).Should(Equal(1.0)) } }) }) Context("when there is an existing start message", func() { var existingMessage models.PendingStartMessage BeforeEach(func() { existingMessage = models.NewPendingStartMessage(time.Unix(1, 0), 0, 0, app.AppGuid, app.AppVersion, 0, 0.5, models.PendingStartMessageReasonMissing) store.SavePendingStartMessages( existingMessage, ) analyzer.Analyze() }) It("should not overwrite", func() { Ω(startMessages()).Should(HaveLen(2)) Ω(startMessages()).Should(ContainElement(EqualPendingStartMessage(existingMessage))) }) }) Context("but only some of the instances are running", func() { BeforeEach(func() { store.SyncHeartbeats(app.Heartbeat(1)) })
}) }) Context("when there are start messages", func() { var keepAliveTime int var sentOn int64 var err error var pendingMessage models.PendingStartMessage var storeSetErrInjector *fakestoreadapter.FakeStoreAdapterErrorInjector JustBeforeEach(func() { store.SyncDesiredState(app.DesiredState(1)) pendingMessage = models.NewPendingStartMessage(time.Unix(100, 0), 30, keepAliveTime, app.AppGuid, app.AppVersion, 0, 1.0, models.PendingStartMessageReasonInvalid) pendingMessage.SentOn = sentOn store.SavePendingStartMessages( pendingMessage, ) storeAdapter.SetErrInjector = storeSetErrInjector err = sender.Send() }) BeforeEach(func() { keepAliveTime = 0 sentOn = 0 err = nil storeSetErrInjector = nil }) Context("and it is not time to send the message yet", func() { BeforeEach(func() { timeProvider.TimeToProvide = time.Unix(129, 0)