cybernaut
Version:
Reliable, zero configuration end-to-end testing in BDD-style.
36 lines • 1.18 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Ajv = require("ajv");
const path_1 = require("path");
const defaultConfig = {
capabilities: { browserName: 'chrome' },
concurrency: 1,
dependencies: ['chromedriver'],
exclude: ['**/node_modules/**/*'],
include: '**/*.e2e.js',
retries: 4,
retryDelay: 500,
screenshotDirectory: 'screenshots',
timeouts: { element: 0, page: 30000, script: 30000 }
};
function loadConfig(filename,
/* istanbul ignore next */
_require = require) {
const customConfig = filename ? _require(path_1.resolve(filename)) : {};
return Object.assign({}, defaultConfig, customConfig);
}
exports.loadConfig = loadConfig;
const schema = require('../config-schema.json');
schema.required = Object.keys(defaultConfig);
function validate(config) {
const ajv = new Ajv({ allErrors: true });
if (!ajv.validate(schema, config) && ajv.errors) {
const separator = '///';
return ajv.errorsText(ajv.errors, {
dataVar: 'config', separator
}).split(separator);
}
return [];
}
exports.validate = validate;
//# sourceMappingURL=config.js.map