25 lines
835 B
TypeScript
25 lines
835 B
TypeScript
import fsPromises from 'node:fs/promises';
|
|
import { describe, expect, it, vi } from 'vitest';
|
|
|
|
import { MCPORTER_VERSION } from '../src/runtime.js';
|
|
|
|
process.env.MCPORTER_DISABLE_AUTORUN = '1';
|
|
const cliModulePromise = import('../src/cli.js');
|
|
|
|
describe('mcporter --version', () => {
|
|
it('reads package.json when available, falling back to runtime version on failure', async () => {
|
|
const { runCli } = await cliModulePromise;
|
|
const logSpy = vi.spyOn(console, 'log').mockImplementation(() => {});
|
|
const readSpy = vi.spyOn(fsPromises, 'readFile').mockRejectedValueOnce(new Error('missing'));
|
|
|
|
await runCli(['--version']);
|
|
|
|
expect(logSpy).toHaveBeenCalledWith(MCPORTER_VERSION);
|
|
expect(readSpy).toHaveBeenCalled();
|
|
|
|
logSpy.mockRestore();
|
|
readSpy.mockRestore();
|
|
process.exitCode = undefined;
|
|
});
|
|
});
|