UNPKG

just-test

Version:
33 lines (28 loc) 1.36 kB
import Logger from '../logger/logger.js'; import { getRandom } from '../../common/random-utils.js'; import { verifyEnrichConfig } from '../environments/environments-service.js'; import { verifyEnrichConfig as verifyEnrichTestsConfig } from '../../testing/testing-service.js'; import { verifyEnrichConfig as verifyEnrichCoverageConfig } from '../../coverage/coverage-service.js'; const logger = new Logger({ context: 'session configurer' }); export default sessionConfig => { if (!sessionConfig || typeof sessionConfig !== 'object') { throw new Error(`session configuration MUST be a non-null object, got '${sessionConfig}'`); } if (!Array.isArray(sessionConfig.environments) || !sessionConfig.environments.length) { throw new Error(`session configuration MUST have at top level 'environments' list with at least 1 entry, got '${sessionConfig.environments}'`); } const result = { environments: {} }; for (const e of sessionConfig.environments) { const tmp = verifyEnrichConfig(e); tmp.id = getRandom(8); tmp.tests = verifyEnrichTestsConfig(e.tests, e); tmp.coverage = verifyEnrichCoverageConfig(e.coverage, e); while (tmp.id in result.environments) { logger.error(`session ID collision (${tmp.id})`); tmp.id = getRandom(8); } result.environments[tmp.id] = tmp; } return Object.freeze(result); };