UNPKG

@bemedev/cli-test

Version:

A library for testing CLI libraries (INCEPTION !!)

1 lines 5.05 kB
{"version":3,"file":"describe.utils.cjs","sources":["../src/describe.utils.ts"],"sourcesContent":["import { prepareEnvironment } from '@gmrchk/cli-testing-library';\nimport { afterAll, beforeAll, vi } from 'vitest';\nimport { undefiny } from './helpers';\nimport type { Defs, MockFn, MockFsKeys } from './types';\n\nexport const envFn = <K extends keyof Defs>() => {\n type T = Defs[K];\n return vi.fn<T[0], T[1]>();\n};\n\nexport const useBefore = () => {\n const readFile = envFn<'readFile'>();\n const writeFile = envFn<'writeFile'>();\n const cleanup = envFn<'cleanup'>();\n const ls = envFn<'ls'>();\n const removeDir = envFn<'removeDir'>();\n const execute = envFn<'execute'>();\n const spawn = envFn<'spawn'>();\n const removeFile = envFn<'removeFile'>();\n const exists = envFn<'exists'>();\n const makeDir = envFn<'makeDir'>();\n const path = vi.fn();\n\n beforeAll(async () => {\n const cli = await prepareEnvironment();\n\n // #region Implements functions\n readFile.mockImplementation(cli.readFile);\n writeFile.mockImplementation(cli.writeFile);\n cleanup.mockImplementation(cli.cleanup);\n ls.mockImplementation(cli.ls);\n removeDir.mockImplementation(cli.removeDir);\n execute.mockImplementation(cli.execute);\n spawn.mockImplementation(cli.spawn);\n makeDir.mockImplementation(cli.makeDir);\n path.mockReturnValue(cli.path);\n removeFile.mockImplementation(cli.removeFile);\n exists.mockImplementation(cli.exists);\n // #endregion\n });\n\n return {\n readFile,\n ls,\n removeDir,\n execute,\n writeFile,\n spawn,\n cleanup,\n makeDir,\n path,\n removeFile,\n exists,\n read: undefiny<string>(),\n };\n};\n\nexport const buildFn = (_fn?: MockFn) => {\n const fn = () => {\n const {\n readFile,\n ls,\n removeDir,\n execute,\n writeFile,\n spawn,\n cleanup,\n makeDir,\n path,\n removeFile,\n exists,\n } = useBefore();\n\n const mockFs = (...envs: MockFsKeys[]) => {\n const __fn = globalThis?.buildMockFs?.getMockImplementation();\n /* v8 ignore next 1 */\n if (!__fn) return false;\n\n globalThis.buildMockFs(\n { exists, makeDir, removeDir, ls, readFile, writeFile },\n ...envs,\n );\n\n return true;\n };\n\n afterAll(async () => {\n await cleanup();\n // vi.clearAllMocks();\n });\n\n return _fn?.({\n readFile,\n ls,\n removeDir,\n execute,\n writeFile,\n spawn,\n cleanup,\n makeDir,\n path: path(),\n removeFile,\n mockFs,\n exists,\n });\n };\n\n return fn;\n};\n"],"names":["vi","beforeAll","prepareEnvironment","undefiny","afterAll"],"mappings":"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"}