}) Context("when an associated DEA heartbeat has expired", func() { BeforeEach(func() { storeAdapter.Delete("/hm/v1/dea-presence/A") }) It("should not return any expired instance heartbeats", func() { results, err := store.GetInstanceHeartbeatsForApp(app.AppGuid, app.AppVersion) Ω(err).ShouldNot(HaveOccurred()) Ω(results).Should(HaveLen(1)) Ω(results).Should(ContainElement(heartbeatB)) }) It("should remove expired instance heartbeats from the store", func() { _, err := storeAdapter.Get("/hm/v1/apps/actual/" + store.AppKey(app.AppGuid, app.AppVersion) + "/" + heartbeatA.StoreKey()) Ω(err).ShouldNot(HaveOccurred()) _, err = store.GetInstanceHeartbeatsForApp(app.AppGuid, app.AppVersion) Ω(err).ShouldNot(HaveOccurred()) _, err = storeAdapter.Get("/hm/v1/apps/actual/" + store.AppKey(app.AppGuid, app.AppVersion) + "/" + heartbeatA.StoreKey()) Ω(err).Should(Equal(storeadapter.ErrorKeyNotFound)) }) Context("if it fails to remove them", func() { It("should soldier on", func() { resultChan := make(chan []models.InstanceHeartbeat, 2) errChan := make(chan error, 2) go func() { results, err := store.GetInstanceHeartbeatsForApp(app.AppGuid, app.AppVersion)