UNPKG

@bemedev/cli-test

Version:

A library for testing CLI libraries (INCEPTION !!)

90 lines (83 loc) 2.63 kB
// 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'; export { CLI_TEST_EXTENSION, INITIALIZATION_FAILED, INITIALIZATION_SUCCESS, REMOVING_FAILED, REMOVING_SUCCESS, SETUP, SETUP_FILE }; //# sourceMappingURL=constants.js.map