expectedStartMessage = models.NewPendingStartMessage(clock.Now(), conf.GracePeriod(), 0, yetAnotherApp.AppGuid, yetAnotherApp.AppVersion, 1, 1.0, models.PendingStartMessageReasonMissing) Ω(startMessages()).Should(ContainElement(EqualPendingStartMessage(expectedStartMessage))) Ω(stopMessages()).Should(HaveLen(2)) expectedStopMessage := models.NewPendingStopMessage(clock.Now(), 0, conf.GracePeriod(), app.AppGuid, app.AppVersion, app.InstanceAtIndex(1).InstanceGuid, models.PendingStopMessageReasonExtra) Ω(stopMessages()).Should(ContainElement(EqualPendingStopMessage(expectedStopMessage))) expectedStopMessage = models.NewPendingStopMessage(clock.Now(), 0, conf.GracePeriod(), undesiredApp.AppGuid, undesiredApp.AppVersion, undesiredApp.InstanceAtIndex(0).InstanceGuid, models.PendingStopMessageReasonExtra) Ω(stopMessages()).Should(ContainElement(EqualPendingStopMessage(expectedStopMessage))) }) }) Context("When the store is not fresh and/or fails to fetch data", func() { BeforeEach(func() { storeAdapter.Reset() desired := app.DesiredState(1) //this setup would, ordinarily, trigger a start and a stop store.SyncDesiredState( desired, ) store.SyncHeartbeats( appfixture.NewAppFixture().Heartbeat(0), ) }) Context("when the desired state is not fresh", func() { BeforeEach(func() { store.BumpActualFreshness(time.Unix(10, 0)) })