import { dasherize, classify } from '@angular-devkit/core/src/utils/strings'; import { Rule, SchematicContext, Tree } from '@angular-devkit/schematics'; import { ModelRelation, ClassRelationEnum, Model } from '@vmfvmf/ywtc-lib'; import { getPrjSrd } from '../../../../router.gen'; import { E2EGenerator, FrontEndGenerator } from '../../../../shared/generator'; export function gen(model: Model): Rule { return (tree: Tree, _context: SchematicContext) => { const ucNo = model.ucNo; const mdlNDashd = getPrjSrd().mdlNDashd; const importsAr = [ `import { ST${ucNo}01 } from "cypress/src/uc-${ucNo}-manage-${mdlNDashd}/01-search-${mdlNDashd}/tests/st-${ucNo}-01-search-${mdlNDashd}";`, `import { ST${ucNo}02 } from "cypress/src/uc-${ucNo}-manage-${mdlNDashd}/02-update-${mdlNDashd}/tests/st-${ucNo}-02-update-${mdlNDashd}";` ]; const testSuitsAr = [ `\tnew ST${ucNo}01()`, `\tnew ST${ucNo}02()` ]; model.relations .filter((rel: ModelRelation) => [ClassRelationEnum.OneToMany].includes(rel.relation)) .forEach((rel: ModelRelation) => { importsAr.push(`import { ST${ucNo}02${classify(rel.toModelName)} } from "cypress/src/uc-${ucNo}-manage-${mdlNDashd}/02-update-${mdlNDashd}/tests/st-${ucNo}-02-update-${dasherize(rel.toModelName)}";`); testSuitsAr.push(`\tnew ST${ucNo}02${classify(rel.toModelName)}()`); }); const importsStr = importsAr.join('\n'); const testSuits = testSuitsAr.join(',\n'); return new E2EGenerator(__filename).gen({ importsStr, testSuits, ucNo }); }; }