@uuv/runner-commons
Version:
A common lib for uuv
128 lines (127 loc) • 6.44 kB
JavaScript
;
/**
* 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;