heartbeat = dea.HeartbeatWith(app.CrashedInstanceHeartbeatAtIndex(0)) store.SyncHeartbeats(heartbeat) store.SyncDesiredState( app.DesiredState(1), ) }) It("should back off the scheduling", func() { expectedDelays := []int64{0, 0, 0, 30, 60, 120, 240, 480, 960, 960, 960} for _, expectedDelay := range expectedDelays { err := analyzer.Analyze() Ω(err).ShouldNot(HaveOccurred()) Ω(startMessages()[0].SendOn).Should(Equal(clock.Now().Unix() + expectedDelay)) Ω(startMessages()[0].StartReason).Should(Equal(models.PendingStartMessageReasonCrashed)) store.DeletePendingStartMessages(startMessages()...) } }) }) Context("When all instances are crashed", func() { BeforeEach(func() { heartbeat = dea.HeartbeatWith(app.CrashedInstanceHeartbeatAtIndex(0), app.CrashedInstanceHeartbeatAtIndex(1)) store.SyncHeartbeats(heartbeat) store.SyncDesiredState( app.DesiredState(2), ) }) It("should only try to start the index 0", func() {