UNPKG

@gobvoz/cli-fsd

Version:

Utility to create slices in Feature-Sliced Design methodology. Expect, that you have already installed `react`, `typescript`, `@reduxjs/toolkit`, `@reduxjs/toolkit-query`, `i18n` and use `module.scss` structure.

38 lines (30 loc) 1 kB
import fs from 'fs/promises'; import path from 'path'; import log from '../utils/log.js'; import createFolder from '../utils/create-folder.js'; import testTemplate from '../templates/test-template.js'; const createTest = async (layer, sliceName, segment) => { const resolvePath = (...segments) => path.resolve('src', layer, sliceName.kebabCase, '__TESTS__', ...segments); const createFolderStructure = async () => { try { await createFolder(resolvePath()); } catch (error) { log.warning(`Could not create 'tests' structure for "${sliceName.kebabCase}"`); process.exit(); } }; const createTemplate = async () => { try { await fs.writeFile( resolvePath(`${segment || sliceName.kebabCase}.test.ts`), testTemplate(sliceName), ); } catch (error) { log.error(`Could not create 'tests' for "${sliceName.kebabCase}"`); } }; await createFolderStructure(); await createTemplate(); }; export default createTest;