UNPKG

@bemedev/cli-test

Version:

A library for testing CLI libraries (INCEPTION !!)

98 lines (90 loc) 2.82 kB
'use strict'; // export const LIBRARY = '@bemedev/cli-test'; const SETUP_FILE = '.cli-test.vitest.setup.generated.ts'; const INITIALIZATION_SUCCESS = 'Initialization is successful!'; const INITIALIZATION_FAILED = 'Initialization failed!'; const REMOVING_SUCCESS = 'Removing is successful!'; const REMOVING_FAILED = 'Removing failed!'; const SETUP = ` import { type ConfigDefs } from '@bemedev/cli-test'; import { buildPartialMock } from '@bemedev/cli-test/lib/helpers/partialMock'; import { checkHaveCli } from '@bemedev/cli-test/lib/helpers/path'; import { anify } from '@bemedev/cli-test/lib/helpers/utils'; import * as fs from 'fs'; import * as fs_promises from 'fs/promises'; import { beforeAll, vi } from 'vitest'; type FSPromises = typeof fs_promises; type FS = typeof fs; // #region BeforeAll beforeAll(async ({ filepath }) => { const isCli = checkHaveCli(filepath); if (isCli) { vi.mock('fs/promises', original => buildPartialMock<FSPromises>( original, 'writeFile', 'readFile', 'mkdir', 'rm', 'readdir', ), ); vi.mock('fs', original => buildPartialMock<FS>(original, 'existsSync'), ); } }); // #endregion // #region buildMockFs globalThis.buildMockFs = vi .fn() .mockImplementation( ( { exists, makeDir, removeDir, ls, readFile, writeFile }: ConfigDefs, ...envs ) => { console.log('Implement buildMocks'); const _envs = new Set(envs); _envs.forEach(env => { switch (env) { case 'writeFile': vi.mocked(fs_promises.writeFile).mockImplementation( anify(writeFile), ); break; case 'readFile': vi.mocked(fs_promises.readFile).mockImplementation( anify(readFile), ); break; case 'mkdir': vi.mocked(fs_promises.mkdir).mockImplementation( anify(makeDir), ); break; case 'rm': vi.mocked(fs_promises.rm).mockImplementation(anify(removeDir)); break; case 'readdir': vi.mocked(fs_promises.readdir).mockImplementation(anify(ls)); break; case 'existsSync': vi.mocked(fs.existsSync).mockImplementation(anify(exists)); break; default: break; } }); }, ); // #endregion `; const CLI_TEST_EXTENSION = '.cli.test.ts'; exports.CLI_TEST_EXTENSION = CLI_TEST_EXTENSION; exports.INITIALIZATION_FAILED = INITIALIZATION_FAILED; exports.INITIALIZATION_SUCCESS = INITIALIZATION_SUCCESS; exports.REMOVING_FAILED = REMOVING_FAILED; exports.REMOVING_SUCCESS = REMOVING_SUCCESS; exports.SETUP = SETUP; exports.SETUP_FILE = SETUP_FILE; //# sourceMappingURL=constants.cjs.map