Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build/test.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const

const mochaOpts = {
reporter: 'spec',
compilers: ['js:@babel/register']
require: ['@babel/register']
};

gulp.task('cleanTestOut', () => del('test/out/*'));
Expand Down
24 changes: 12 additions & 12 deletions lib/contextFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
exports["default"] = void 0;

var _isArray = _interopRequireDefault(require("lodash/isArray"));

var _scenariooStore = _interopRequireDefault(require("./scenariooStore"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

/**
* Since useCase and scenario both can have additional properties like "description" and "labels",
Expand All @@ -22,9 +22,9 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
function contextFactory(objectName) {
objectName = capitalizeFirstLetter(objectName);

var updateContextObject = _scenariooStore.default["updateCurrent".concat(objectName)];
var updateContextObject = _scenariooStore["default"]["updateCurrent".concat(objectName)];

var getContextObject = _scenariooStore.default["getCurrent".concat(objectName)];
var getContextObject = _scenariooStore["default"]["getCurrent".concat(objectName)];
/**
* @namespace context
*/
Expand All @@ -41,9 +41,9 @@ function contextFactory(objectName) {
*/

function setDescription(description) {
if (!_scenariooStore.default.isInitialized()) {
if (!_scenariooStore["default"].isInitialized()) {
// init an empty context and try to work on that, assuming that it is just scenarioo not enabled to write reports
_scenariooStore.default.init({});
_scenariooStore["default"].init({});
}

updateContextObject({
Expand All @@ -62,15 +62,15 @@ function contextFactory(objectName) {
return;
}

if (!_scenariooStore.default.isInitialized()) {
if (!_scenariooStore["default"].isInitialized()) {
// init an empty context and try to work on that, assuming that it is just scenarioo not enabled to write reports
_scenariooStore.default.init({});
_scenariooStore["default"].init({});
}

var currentContext = getContextObject();
var mergedLabels = currentContext.labels || [];

if (!(0, _isArray.default)(labels)) {
if (!(0, _isArray["default"])(labels)) {
mergedLabels.push(labels);
} else {
mergedLabels = mergedLabels.concat(labels);
Expand All @@ -83,9 +83,9 @@ function contextFactory(objectName) {
}

function getCurrent() {
if (!_scenariooStore.default.isInitialized()) {
if (!_scenariooStore["default"].isInitialized()) {
// init an empty context and try to work on that, assuming that it is just scenarioo not enabled to write reports
_scenariooStore.default.init({});
_scenariooStore["default"].init({});
}

return getContextObject();
Expand All @@ -109,4 +109,4 @@ function assertLabelFormat(labels) {
}

var _default = contextFactory;
exports.default = _default;
exports["default"] = _default;
100 changes: 50 additions & 50 deletions lib/docuWriter/docuWriter.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.registerPageNameFunction = registerPageNameFunction;
exports.start = start;
exports.cleanBuild = cleanBuild;
exports["default"] = void 0;
exports.registerPageNameFunction = registerPageNameFunction;
exports.saveBuild = saveBuild;
exports.saveUseCase = saveUseCase;
exports.saveScenario = saveScenario;
exports.saveStep = saveStep;
exports.default = void 0;
exports.saveUseCase = saveUseCase;
exports.start = start;

var _path = _interopRequireDefault(require("path"));

Expand Down Expand Up @@ -46,7 +46,7 @@ var _xmlWriter = _interopRequireDefault(require("./xmlWriter"));

var _pageNameExtractor = _interopRequireDefault(require("./pageNameExtractor"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }

var buildOutputDir;
/**
Expand All @@ -70,10 +70,10 @@ var _default = docuWriter;
* @func docuWriter#registerPageNameFunction
*/

exports.default = _default;
exports["default"] = _default;

function registerPageNameFunction(pageNameFunction) {
_pageNameExtractor.default.registerCustomExtractionFunction(pageNameFunction);
_pageNameExtractor["default"].registerCustomExtractionFunction(pageNameFunction);
}
/**
* Initializes the writer and also saves the branch.xml file.
Expand All @@ -91,28 +91,28 @@ function registerPageNameFunction(pageNameFunction) {
function start(branch, buildname, scenariooTargetDirectory, options) {
var _this = this;

_entityValidator.default.validateBranch(branch);
_entityValidator["default"].validateBranch(branch);

this.branch = branch;
this.branch.name = _identifierSanitizer.default.sanitize(branch.name);
var buildDirName = (0, _utils.encodeFileName)(_identifierSanitizer.default.sanitize(buildname)); // generate directories and write branch.xml
this.branch.name = _identifierSanitizer["default"].sanitize(branch.name);
var buildDirName = (0, _utils.encodeFileName)(_identifierSanitizer["default"].sanitize(buildname)); // generate directories and write branch.xml

buildOutputDir = _path.default.join(scenariooTargetDirectory, (0, _utils.encodeFileName)(this.branch.name), buildDirName);
buildOutputDir = _path["default"].join(scenariooTargetDirectory, (0, _utils.encodeFileName)(this.branch.name), buildDirName);
return cleanBuildOnStartIfEnabled(buildOutputDir, options).then(function () {
return _xmlWriter.default.writeXmlFile('branch', _this.branch, _path.default.resolve(_path.default.join(scenariooTargetDirectory, (0, _utils.encodeFileName)(_this.branch.name)), 'branch.xml'));
return _xmlWriter["default"].writeXmlFile('branch', _this.branch, _path["default"].resolve(_path["default"].join(scenariooTargetDirectory, (0, _utils.encodeFileName)(_this.branch.name)), 'branch.xml'));
});
}

function cleanBuild(options) {
var scenariooTargetDirectory = _path.default.resolve(options.targetDirectory);
var scenariooTargetDirectory = _path["default"].resolve(options.targetDirectory);

var buildOutputDir = _path.default.join(scenariooTargetDirectory, (0, _utils.encodeFileName)(_identifierSanitizer.default.sanitize(options.branchName)), (0, _utils.encodeFileName)(_identifierSanitizer.default.sanitize(options.buildName)));
var buildOutputDir = _path["default"].join(scenariooTargetDirectory, (0, _utils.encodeFileName)(_identifierSanitizer["default"].sanitize(options.branchName)), (0, _utils.encodeFileName)(_identifierSanitizer["default"].sanitize(options.buildName)));

if (!options.disableScenariooLogOutput) {
console.log('Cleaning build output directory for scenarioo documentation of this build: ' + buildOutputDir);
}

_del.default.sync(buildOutputDir);
_del["default"].sync(buildOutputDir);
}
/**
* cleans specified build directory if required by options
Expand All @@ -129,9 +129,9 @@ function cleanBuildOnStartIfEnabled(buildOutputDir, options) {
console.log('Cleaning build output directory for scenarioo documentation of this build: ' + buildOutputDir);
}

return (0, _del.default)(buildOutputDir);
return (0, _del["default"])(buildOutputDir);
} else {
return _q.default.when(true);
return _q["default"].when(true);
}
}
/**
Expand All @@ -143,10 +143,10 @@ function cleanBuildOnStartIfEnabled(buildOutputDir, options) {


function saveBuild(build) {
_entityValidator.default.validateBuild(build);
_entityValidator["default"].validateBuild(build);

build.name = _identifierSanitizer.default.sanitize(build.name);
return _xmlWriter.default.writeXmlFile('build', build, _path.default.join(buildOutputDir, 'build.xml'));
build.name = _identifierSanitizer["default"].sanitize(build.name);
return _xmlWriter["default"].writeXmlFile('build', build, _path["default"].join(buildOutputDir, 'build.xml'));
}
/**
* Saves the given useCase to the scenarioo file structure.
Expand All @@ -159,19 +159,19 @@ function saveBuild(build) {


function saveUseCase(useCase) {
if ((0, _isUndefined.default)(buildOutputDir)) {
if ((0, _isUndefined["default"])(buildOutputDir)) {
throw 'Cannot save use case. No outputDirectory specified. docuWriter.start(branch, build, targetDir) not invoked?';
} // pick known attributes from given useCase object (user might choose to store other state on the usecase)


var useCaseToSave = (0, _pick.default)(useCase, ['name', 'description', 'status', 'labels']);
var useCaseToSave = (0, _pick["default"])(useCase, ['name', 'description', 'status', 'labels']);

_entityValidator.default.validateUseCase(useCaseToSave);
_entityValidator["default"].validateUseCase(useCaseToSave);

var absUseCasePath = _path.default.resolve(buildOutputDir, (0, _utils.encodeFileName)(useCaseToSave.name));
var absUseCasePath = _path["default"].resolve(buildOutputDir, (0, _utils.encodeFileName)(useCaseToSave.name));

useCase.name = _identifierSanitizer.default.sanitize(useCaseToSave.name);
return _xmlWriter.default.writeXmlFile('useCase', useCaseToSave, _path.default.join(absUseCasePath, 'usecase.xml'));
useCase.name = _identifierSanitizer["default"].sanitize(useCaseToSave.name);
return _xmlWriter["default"].writeXmlFile('useCase', useCaseToSave, _path["default"].join(absUseCasePath, 'usecase.xml'));
}
/**
* Saves the given scenario according to the scenarioo file structure.
Expand All @@ -185,19 +185,19 @@ function saveUseCase(useCase) {


function saveScenario(currentScenario, useCaseName) {
if ((0, _isUndefined.default)(buildOutputDir)) {
if ((0, _isUndefined["default"])(buildOutputDir)) {
throw 'Cannot save use scenario. No outputDirectory specified. docuWriter.start(branch, build, targetDir) not invoked?';
} // pick known attributes from given scenario object (user might choose to store other state on the scenario)


var scenarioToSave = (0, _pick.default)(currentScenario, ['name', 'description', 'status', 'labels']);
var scenarioToSave = (0, _pick["default"])(currentScenario, ['name', 'description', 'status', 'labels']);

_entityValidator.default.validateScenario(scenarioToSave);
_entityValidator["default"].validateScenario(scenarioToSave);

var absScenarioPath = _path.default.resolve(buildOutputDir, (0, _utils.encodeFileName)(useCaseName), (0, _utils.encodeFileName)(scenarioToSave.name));
var absScenarioPath = _path["default"].resolve(buildOutputDir, (0, _utils.encodeFileName)(useCaseName), (0, _utils.encodeFileName)(scenarioToSave.name));

scenarioToSave.name = _identifierSanitizer.default.sanitize(scenarioToSave.name);
return _xmlWriter.default.writeXmlFile('scenario', scenarioToSave, _path.default.join(absScenarioPath, 'scenario.xml'));
scenarioToSave.name = _identifierSanitizer["default"].sanitize(scenarioToSave.name);
return _xmlWriter["default"].writeXmlFile('scenario', scenarioToSave, _path["default"].join(absScenarioPath, 'scenario.xml'));
}
/**
* Saves a step (xml plus screenshot)
Expand All @@ -216,31 +216,31 @@ function saveScenario(currentScenario, useCaseName) {


function saveStep(stepTitle, additionalProperties) {
if (!(0, _isString.default)(stepTitle)) {
if (!(0, _isString["default"])(stepTitle)) {
additionalProperties = stepTitle;
stepTitle = '';
} // Because this is invoked by the e2e test,
// we have to access the store directly from here.


if ((0, _isUndefined.default)(buildOutputDir)) {
if ((0, _isUndefined["default"])(buildOutputDir)) {
// if you disable scenario documentation generation (e.g. via environment variable in your protractor config)
// this will still be invoked, since "saveStep(..)" is called from within your tests.
// in this case, just do nothing.
return _q.default.when(true);
return _q["default"].when(true);
}

var currentScenario = {
useCaseName: _scenariooStore.default.getCurrentUseCase().name,
scenarioName: _scenariooStore.default.getCurrentScenario().name,
stepCounter: _scenariooStore.default.incrementStepCounter()
useCaseName: _scenariooStore["default"].getCurrentUseCase().name,
scenarioName: _scenariooStore["default"].getCurrentScenario().name,
stepCounter: _scenariooStore["default"].incrementStepCounter()
};

var absScenarioPath = _path.default.resolve(buildOutputDir, (0, _utils.encodeFileName)(currentScenario.useCaseName), (0, _utils.encodeFileName)(currentScenario.scenarioName));
var absScenarioPath = _path["default"].resolve(buildOutputDir, (0, _utils.encodeFileName)(currentScenario.useCaseName), (0, _utils.encodeFileName)(currentScenario.scenarioName));

var screenshotPromise = saveScreenshot(currentScenario.stepCounter, absScenarioPath);
var stepXmlPromise = writeStepXml(stepTitle, currentScenario, absScenarioPath, additionalProperties);
return _q.default.all([stepXmlPromise, screenshotPromise]).then(function (results) {
return _q["default"].all([stepXmlPromise, screenshotPromise]).then(function (results) {
return {
step: results[0].step,
xmlPath: results[0].file,
Expand Down Expand Up @@ -274,7 +274,7 @@ function getStepDataFromWebpage() {
}

function getPageNameFromUrl(urlString) {
return _identifierSanitizer.default.sanitize(_pageNameExtractor.default.getPageNameFromUrl(urlString));
return _identifierSanitizer["default"].sanitize(_pageNameExtractor["default"].getPageNameFromUrl(urlString));
}
/**
* writes step xml file (000.xml, 001.xml, etc.)
Expand Down Expand Up @@ -306,10 +306,10 @@ function writeStepXml(stepTitle, currentScenario, absScenarioPath, additionalPro
stepData.stepDescription.labels = additionalProperties.labels;
}

if (additionalProperties && additionalProperties.screenAnnotations && (0, _isArray.default)(additionalProperties.screenAnnotations)) {
if (additionalProperties && additionalProperties.screenAnnotations && (0, _isArray["default"])(additionalProperties.screenAnnotations)) {
stepData.screenAnnotations = additionalProperties.screenAnnotations.map(function (annotation) {
return (0, _merge.default)({}, (0, _omit.default)(annotation, ['x', 'y', 'width', 'height']), {
region: (0, _pick.default)(annotation, ['x', 'y', 'width', 'height'])
return (0, _merge["default"])({}, (0, _omit["default"])(annotation, ['x', 'y', 'width', 'height']), {
region: (0, _pick["default"])(annotation, ['x', 'y', 'width', 'height'])
});
});
}
Expand All @@ -318,9 +318,9 @@ function writeStepXml(stepTitle, currentScenario, absScenarioPath, additionalPro
stepData.stepDescription.status = additionalProperties.status;
}

var xmlFileName = _path.default.join(absScenarioPath, 'steps', currentStepCounter + '.xml');
var xmlFileName = _path["default"].join(absScenarioPath, 'steps', currentStepCounter + '.xml');

return _xmlWriter.default.writeXmlFile('step', stepData, xmlFileName).then(function () {
return _xmlWriter["default"].writeXmlFile('step', stepData, xmlFileName).then(function () {
return {
file: xmlFileName,
step: stepData
Expand All @@ -330,15 +330,15 @@ function writeStepXml(stepTitle, currentScenario, absScenarioPath, additionalPro
}

function saveScreenshot(stepCounter, absScenarioPath) {
var screenShotDir = _path.default.resolve(absScenarioPath, 'screenshots');
var screenShotDir = _path["default"].resolve(absScenarioPath, 'screenshots');

var screenShotFileName = _path.default.resolve(screenShotDir, (0, _utils.leadingZeros)(stepCounter) + '.png');
var screenShotFileName = _path["default"].resolve(screenShotDir, (0, _utils.leadingZeros)(stepCounter) + '.png');

return browser.takeScreenshot().then(function (data) {
return (// recursively create the directory for our new screenshot
_q.default.nfcall(_mkdirp.default, screenShotDir).then(function () {
_q["default"].nfcall(_mkdirp["default"], screenShotDir).then(function () {
return (// then save screenshot file
_q.default.nfcall(_fs.default.writeFile, screenShotFileName, data, 'base64').then(function () {
_q["default"].nfcall(_fs["default"].writeFile, screenShotFileName, data, 'base64').then(function () {
return screenShotFileName;
})
);
Expand Down
Loading