UNPKG

@cucumber/cucumber

Version:

The official JavaScript implementation of Cucumber.

39 lines 1.76 kB
"use strict"; 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