cli.test.ts•1.13 kB
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import { parseArgs } from '../src/cli.js';
vi.mock('commander', () => {
const mockCommand = {
name: vi.fn().mockReturnThis(),
description: vi.fn().mockReturnThis(),
version: vi.fn().mockReturnThis(),
option: vi.fn().mockReturnThis(),
parse: vi.fn(),
opts: vi.fn().mockReturnValue({ file: 'test.xlsx' }),
};
return {
Command: vi.fn(() => mockCommand),
};
});
vi.mock('../src/auth.js', () => {
return {
default: vi.fn().mockImplementation(() => ({
getToken: vi.fn().mockResolvedValue('mock-token'),
logout: vi.fn().mockResolvedValue(true),
})),
};
});
vi.spyOn(process.stderr, 'write').mockImplementation(() => true);
vi.spyOn(process, 'exit').mockImplementation(() => {});
describe('CLI Module', () => {
beforeEach(() => {
vi.clearAllMocks();
});
afterEach(() => {
vi.resetAllMocks();
});
describe('parseArgs', () => {
it('should return command options', () => {
const result = parseArgs();
expect(result).toEqual({ file: 'test.xlsx' });
});
});
});