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{})