Context("when the redis process fails to start", func() { BeforeEach(func() { connectionTimeoutErr = errors.New("oops") }) It("returns the same error that the WaitUntilConnectableFunc returns", func() { err := processController.StartAndWaitUntilReadyWithConfig(instance, []string{}, time.Second*1) Ω(err).To(Equal(connectionTimeoutErr)) }) }) }) Describe("Kill", func() { It("kills the correct process", func() { err := processController.Kill(instance) Ω(err).NotTo(HaveOccurred()) Ω(fakeProcessKiller.killed).Should(BeTrue()) Ω(fakeProcessKiller.lastPidKilled).Should(Equal(123)) }) }) Describe("EnsureRunning", func() { Context("if the process is already running", func() { var controller *redis.OSProcessController var log *gbytes.Buffer BeforeEach(func() { fakeProcessChecker.alive = true })