|
- import {
- describe,
- it,
- expect,
- vi, beforeAll, afterAll, beforeEach, afterEach, SpyInstanceFn,
- } from 'vitest';
- import { main, PRESENTATION } 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('presenters', () => {
- let defaultConsole: typeof console;
- beforeAll(() => {
- defaultConsole = console;
- global.console = {
- log: () => {
- // noop
- },
- } as unknown as typeof console;
- });
-
- afterAll(() => {
- global.console = defaultConsole;
- });
-
- describe.each(PRESENTATION)('%s', (presentation) => {
- let presenterFn: SpyInstanceFn<[], Promise<void>>;
-
- beforeEach(() => {
- presenterFn = vi.fn(() => Promise.resolve());
- vi.mocked(presenters[presentation]).mockReturnValueOnce(presenterFn);
- });
-
- afterEach(() => {
- vi.mocked(presenters[presentation]).mockReset();
- });
-
- it('displays the card', async () => {
- await main({
- presentation,
- formatted: false,
- cards: ['default'],
- });
-
- expect(presenters[presentation]).toBeCalled();
- expect(presenterFn).toBeCalled();
- });
- });
- });
|