UNPKG

@uuv/runner-commons

Version:
128 lines (127 loc) 6.44 kB
"use strict"; /** * Software Name : UUV * * SPDX-License-Identifier: MIT * * This software is distributed under the MIT License, * see the "LICENSE" file for more details * * Authors: NJAKO MOLOM Louis Fredice & SERVICAL Stanley * Software description: Make test writing fast, understandable by any human * understanding English or French. */ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); Object.defineProperty(exports, "__esModule", { value: true }); exports.BasedRoleStepDefinition = void 0; const common_1 = require("./common"); const path = __importStar(require("path")); const dictionary_1 = require("@uuv/dictionary"); class BasedRoleStepDefinition extends common_1.GenerateFileProcessing { runGenerate() { Object.values(dictionary_1.LANG).forEach((lang) => { const generatedSubfolder = `enriched/${lang}`; const generatedFolder = path.join(this.generatedDir, generatedSubfolder); common_1.Common.cleanFolderIfExists(generatedFolder); common_1.Common.buildDirIfNotExists(generatedFolder); const generatedFile = path.join(generatedFolder, `_${lang}-generated-steps-definition_$roleId.ts`); // console.debug("generatedFile template", this.generatedFile) this.generateWordingFiles(generatedFile, lang); }); } generateWordingFiles(generatedFile, lang) { const data = common_1.fs.readFileSync(this.stepDefinitionFile, { encoding: "utf8" }); const dictionary = (0, dictionary_1.getDefinedDictionary)(lang); this.computeWordingFile(data, dictionary, generatedFile); } computeWordingFile(data, dictionary, generatedFile) { const dataOrigin = data; let dataUpdated = dataOrigin; dictionary.getDefinedRoles().forEach((role) => { // console.debug("role", role) dataUpdated = "/*******************************\n" + "NE PAS MODIFIER, FICHIER GENERE\n" + "*******************************/\n\n" + dataOrigin; dataUpdated = dataUpdated .replace("../../cypress/commands", "../../../../../../cypress/commands") .replace("../i18n/template.json", "../../../../i18n/template.json") .replace("import { key } from \"@uuv/dictionary\";", "") .replace("import {key} from \"@uuv/dictionary\";", "") .replace("./core-engine", "../../../core-engine") .replace("../../preprocessor/run/world", "../../../../../preprocessor/run/world") .replace("./_.common", "../../../_.common"); dictionary.getRoleBasedSentencesTemplate().forEach((sentence) => { // console.debug(">> conf", conf) // console.debug("${" + conf.key + "}"); dataUpdated = dataUpdated .replaceAll("${" + sentence.key + "}", sentence.wording) .replaceAll("$roleId", role.id) .replaceAll("$roleName", role.name) .replaceAll("$definiteArticle", role.getDefiniteArticle()) .replaceAll("$indefiniteArticle", role.getIndefiniteArticle()) .replaceAll("$namedAdjective", role.namedAdjective()) .replaceAll("$ofDefiniteArticle", role.getOfDefiniteArticle()) .replaceAll(sentence.key + ".description", sentence.description); }); // Exclude Role based Content sentence if specified if (!role.shouldGenerateContainsSentence) { dataUpdated = dataUpdated.replace(/\/\/ Begin of Content Section[\s\S]*?\/\/ End of Content Section/, ""); } // Exclude Role based Type sentence if specified if (!role.shouldGenerateClickSentence) { dataUpdated = dataUpdated.replace(/\/\/ Begin of Click Section[\s\S]*?\/\/ End of Click Section/, ""); } // Exclude Role based Type sentence if specified if (!role.shouldGenerateTypeSentence) { dataUpdated = dataUpdated.replace(/\/\/ Begin of Type Section[\s\S]*?\/\/ End of Type Section/, ""); } // Exclude Role based Keyboard sentence if specified if (!role.shouldGenerateKeyboardSentence) { dataUpdated = dataUpdated.replace(/\/\/ Begin of Keyboard Section[\s\S]*?\/\/ End of Keyboard Section/, ""); } // Exclude Role based Checked sentence if specified if (!role.shouldGenerateCheckedSentence) { dataUpdated = dataUpdated.replace(/\/\/ Begin of Checkable Section[\s\S]*?\/\/ End of Checkable Section/, ""); } const generatedFilename = generatedFile.replace("$roleId", role.id); // console.debug(">>> data", dataUpdated) // console.debug(">>> generatedFilename", generatedFilename) common_1.Common.writeWordingFile(generatedFilename, dataUpdated); }); } } exports.BasedRoleStepDefinition = BasedRoleStepDefinition;