diff --git a/packages/cli/src/lib/run/log-displayer.ts b/packages/cli/src/lib/run/log-displayer.ts index 9b5e2c6a19..1936bf1436 100644 --- a/packages/cli/src/lib/run/log-displayer.ts +++ b/packages/cli/src/lib/run/log-displayer.ts @@ -1,5 +1,6 @@ import {APIClient} from '@heroku-cli/command' import {ux} from '@oclif/core' +import color from '@heroku-cli/color' import colorize from './colorize' import {isFirApp} from '../apps/generation' import {LogSession} from '../types/fir' @@ -74,17 +75,19 @@ async function logDisplayer(heroku: APIClient, options: LogDisplayerOptions) { source: options.source, } - if (firApp) + if (firApp) { + process.stderr.write(color.cyan.bold('Fetching logs...\n\n')) Object.assign(requestBodyParameters, { dyno: options.dyno, type: options.type, }) - else + } else { Object.assign(requestBodyParameters, { dyno: options.dyno || options.type, lines: options.lines, tail: options.tail, }) + } let recreateLogSession = false do { diff --git a/packages/cli/test/unit/lib/run/log-displayer.unit.test.ts b/packages/cli/test/unit/lib/run/log-displayer.unit.test.ts index 48a8d95e0c..f6e80315f3 100644 --- a/packages/cli/test/unit/lib/run/log-displayer.unit.test.ts +++ b/packages/cli/test/unit/lib/run/log-displayer.unit.test.ts @@ -4,7 +4,7 @@ import {Config} from '@oclif/core' import {CLIError} from '@oclif/core/lib/errors' import {expect} from 'chai' import * as nock from 'nock' -import {stdout} from 'stdout-stderr' +import {stdout, stderr} from 'stdout-stderr' import heredoc from 'tsheredoc' import logDisplayer from '../../../../src/lib/run/log-displayer' import {cedarApp, firApp} from '../../../fixtures/apps/fixtures' @@ -380,12 +380,14 @@ describe('logDisplayer', function () { try { stdout.start() + stderr.start() await logDisplayer(heroku, { app: 'my-fir-app', tail: false, }) } catch (error: unknown) { stdout.stop() + stderr.stop() const {message} = error as Error expect(message.trim()).to.equal('HTTP Error 500 for POST https://api.heroku.com/apps/my-fir-app/log-sessions') } @@ -403,6 +405,9 @@ describe('logDisplayer', function () { logSession1.done() logSession2.done() + + // it displays message about fetching logs for fir apps + expect(stderr.output).to.eq('Fetching logs...\n\n') }) }) })