diff --git a/packages/telescope/__tests__/bin.test.ts b/packages/telescope/__tests__/bin.test.ts index 5c20a4cf0..cc7d56e4f 100644 --- a/packages/telescope/__tests__/bin.test.ts +++ b/packages/telescope/__tests__/bin.test.ts @@ -9,4 +9,13 @@ describe('bin entry point', () => { const binPath = resolve(__dirname, '../dist', file); expect(existsSync(binPath)).toBe(true); }); + + it('telescope --version should print version', () => { + const binPath = resolve(__dirname, '../dist/telescope.js'); + const output = require('child_process') + .execSync(`node ${binPath} --version`) + .toString() + .trim(); + expect(output).toBe(pkg.version); + }); }); diff --git a/packages/telescope/src/cli.ts b/packages/telescope/src/cli.ts index b263838b0..55fea7351 100644 --- a/packages/telescope/src/cli.ts +++ b/packages/telescope/src/cli.ts @@ -1,16 +1,16 @@ import { prompt } from './prompt'; import { Commands as commands } from './cmds'; -import * as pkg from '../package.json'; +import { findAndRequirePackageJson } from 'find-and-require-package-json'; import type { ParsedArgs } from 'minimist'; +const pkg = findAndRequirePackageJson(__dirname); + export const cli = async (argv: ParsedArgs) => { if (argv.v || argv.version) { console.log(pkg.version); return; } - - console.log(`Telescope ${pkg.version}`); const { cmd } = await prompt( [ @@ -19,8 +19,8 @@ export const cli = async (argv: ParsedArgs) => { type: 'fuzzy', name: 'cmd', message: 'what do you want to do?', - choices: Object.keys(commands) - } + choices: Object.keys(commands), + }, ], argv );