cybernaut
Version:
Reliable, automated web UI testing in BDD-style.
43 lines • 1.36 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Ajv = require("ajv");
const createDebug = require("debug");
const path_1 = require("path");
const debug = createDebug('cybernaut:config');
const defaultConfig = {
capabilities: { browserName: 'chrome' },
concurrency: 1,
files: ['**/*.e2e.js', '!**/node_modules/**/*'],
retries: 4,
retryDelay: 1000,
timeouts: { element: 0, page: 30000, script: 30000 }
};
function loadConfig(filename) {
filename = filename ? path_1.resolve(filename) : '';
if (filename) {
debug('Load the custom config file:', filename);
}
else {
debug('Load the default config');
}
const customConfig = filename ? require(filename) : {};
return Object.freeze(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