doneChan := test_helpers.AsyncExecuteCommandWithArgs(logsCommand, []string{"task-guid"}) Eventually(fakeTailedLogsOutputter.OutputTailedLogsCallCount).Should(Equal(1)) Expect(fakeTailedLogsOutputter.OutputTailedLogsArgsForCall(0)).To(Equal("task-guid")) Consistently(doneChan).ShouldNot(BeClosed()) }) Context("when the receptor returns an error", func() { It("displays an error and exits", func() { appExaminer.AppExistsReturns(false, errors.New("can't log this")) test_helpers.ExecuteCommandWithArgs(logsCommand, []string{"non_existent_app"}) Expect(outputBuffer).To(test_helpers.SayLine("Error: can't log this")) Expect(fakeTailedLogsOutputter.OutputTailedLogsCallCount()).To(Equal(0)) Expect(fakeExitHandler.ExitCalledWith).To(Equal([]int{exit_codes.CommandFailed})) }) }) }) Describe("DebugLogsCommand", func() { var debugLogsCommand cli.Command BeforeEach(func() { commandFactory := command_factory.NewLogsCommandFactory(appExaminer, taskExaminer, terminalUI, fakeTailedLogsOutputter, fakeExitHandler) debugLogsCommand = commandFactory.MakeDebugLogsCommand() }) It("tails logs from the lattice-debug stream", func() { doneChan := test_helpers.AsyncExecuteCommandWithArgs(debugLogsCommand, []string{})