import chalk from 'chalk'; import * as obliqueStrategiesCore from '@theoryofnekomata/oblique-strategies-core'; import { describe, it, expect, vi, beforeAll, afterAll, beforeEach, afterEach, } from 'vitest'; import { main } from '../app'; import * as presenters from '../presenters'; vi.mock('@theoryofnekomata/oblique-strategies-core'); vi.mock('chalk'); vi.mock('wrap-ansi'); vi.mock('../readers/file'); vi.mock('../readers/http'); vi.mock('../readers/https'); vi.mock('../readers/text'); vi.mock('../presenters'); describe('formatting', () => { let defaultConsole: typeof console; beforeAll(() => { defaultConsole = console; global.console = { log: () => { // noop }, } as unknown as typeof console; }); afterAll(() => { global.console = defaultConsole; }); beforeAll(() => { vi.mocked(presenters.plain).mockReturnValue(vi.fn()); }); afterAll(() => { vi.mocked(presenters.plain).mockReset(); }); it('formats the card when italic parts are found', async () => { vi.mocked(obliqueStrategiesCore.generate).mockReturnValueOnce('foo\n-italic'); await main({ presentation: 'plain', formatted: true, cards: ['default'], }); expect(chalk.italic).toBeCalled(); }); });