}) Context("when getting the data directories fails", func() { It("returns an error", func() { os.RemoveAll(tmpInstanceDataDir) _, err := repo.InstanceCount() Ω(err).To(HaveOccurred()) }) }) }) Describe("AllInstances", func() { Context("when there are no instances", func() { It("returns an empty instance slice", func() { instances, err := repo.AllInstances() Ω(err).ToNot(HaveOccurred()) Ω(instances).To(BeEmpty()) }) }) Context("when there are some instances", func() { It("contains created instances", func() { instance := newTestInstance(instanceID, repo) instances, err := repo.AllInstances() Ω(err).ToNot(HaveOccurred()) Ω(instances).To(ContainElement(instance)) }) })
Ω(instances).To(ContainElement(instance)) }) It("logs the instance count", func() { Expect(logger).To(gbytes.Say("1 shared Redis instance found")) }) It("logs the ID of the instance", func() { Expect(logger).To(gbytes.Say(fmt.Sprintf("Found shared instance: %s", instance.ID))) }) }) Context("when getting one repo ID fails", func() { BeforeEach(func() { os.Remove(repo.InstanceConfigPath(instance.ID)) _, errs = repo.AllInstances() }) It("returns one error", func() { Expect(len(errs)).To(Equal(1)) Expect(errs[0]).To(HaveOccurred()) }) It("logs the error", func() { Expect(logger).To(gbytes.Say(errs[0].Error())) Expect(logger).To(gbytes.Say(fmt.Sprintf("Error getting instance details for instance ID: %s", instanceID))) }) }) }) Context("when there are several instances", func() {