@cucumber/cucumber
Version:
The official JavaScript implementation of Cucumber.
39 lines • 1.76 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.loadConfiguration = loadConfiguration;
const locate_file_1 = require("../configuration/locate_file");
const configuration_1 = require("../configuration");
const environment_1 = require("../environment");
const convert_configuration_1 = require("./convert_configuration");
/**
* Load user-authored configuration to be used in a test run
*
* @public
* @param options - Coordinates required to find configuration
* @param environment - Project environment
*/
async function loadConfiguration(options = {}, environment = {}) {
const { cwd, env, logger } = (0, environment_1.makeEnvironment)(environment);
const configFile = options.file ?? (0, locate_file_1.locateFile)(cwd);
if (configFile) {
logger.debug(`Configuration will be loaded from "${configFile}"`);
}
else if (configFile === false) {
logger.debug('Skipping configuration file resolution');
}
else {
logger.debug('No configuration file found');
}
const profileConfiguration = configFile
? await (0, configuration_1.fromFile)(logger, cwd, configFile, options.profiles)
: {};
const original = (0, configuration_1.mergeConfigurations)(configuration_1.DEFAULT_CONFIGURATION, profileConfiguration, (0, configuration_1.parseConfiguration)(logger, 'Provided', options.provided));
logger.debug('Resolved configuration:', original);
(0, configuration_1.validateConfiguration)(original, logger);
const runnable = await (0, convert_configuration_1.convertConfiguration)(logger, original, env);
return {
useConfiguration: original,
runConfiguration: runnable,
};
}
//# sourceMappingURL=load_configuration.js.map
;