UNPKG

cybernaut

Version:

Reliable, automated web UI testing in BDD-style.

43 lines 1.36 kB
"use strict"; 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