diff --git a/lib/config/migration.js b/lib/config/migration.js index fff7d460f41aea02e6d2edde38ed325b38b5df9c..cafe3b23b110ae414ca5cf0546ca860c3334685b 100644 --- a/lib/config/migration.js +++ b/lib/config/migration.js @@ -1,3 +1,10 @@ +const options = require('./definitions').getOptions(); + +const optionTypes = {}; +options.forEach(option => { + optionTypes[option.name] = option.type; +}); + module.exports = { migrateConfig, }; @@ -68,6 +75,12 @@ function migrateConfig(config, parentConfig) { }); isMigrated = true; delete migratedConfig.depTypes; + } else if (optionTypes[key] === 'boolean') { + if (val === 'true') { + migratedConfig[key] = true; + } else if (val === 'false') { + migratedConfig[key] = false; + } } else if (isObject(val)) { const subMigrate = migrateConfig(val); if (subMigrate.isMigrated) { diff --git a/lib/config/validation.js b/lib/config/validation.js index 50620cf24ec9a9f94b0871efb22fcad21de8ce04..d8055caeb10cfa63f389dcb698d7190469bc8058 100644 --- a/lib/config/validation.js +++ b/lib/config/validation.js @@ -2,7 +2,7 @@ const options = require('./definitions').getOptions(); const optionTypes = {}; options.forEach(option => { - optionTypes[option.name] = [option.type]; + optionTypes[option.name] = option.type; }); module.exports = { @@ -43,7 +43,7 @@ function validateConfig(config) { message: `Invalid configuration option: \`${key}\``, }); } else if (val != null) { - const type = optionTypes[key].toString(); + const type = optionTypes[key]; if (type === 'boolean') { if (val !== true && val !== false) { errors.push({ diff --git a/test/config/__snapshots__/migration.spec.js.snap b/test/config/__snapshots__/migration.spec.js.snap index da1984e40a40e61d0bf81acbacbf605b953f74fb..0e91f01710bf3f8e56ebb0fa25ffbafe05bbdc43 100644 --- a/test/config/__snapshots__/migration.spec.js.snap +++ b/test/config/__snapshots__/migration.spec.js.snap @@ -2,8 +2,10 @@ exports[`config/migration migrateConfig(config, parentConfig) it migrates config 1`] = ` Object { + "autodiscover": true, "commitMessage": "some commit message", "enabled": true, + "onboarding": false, "optionalDependencies": Object { "respectLatest": false, }, diff --git a/test/config/migration.spec.js b/test/config/migration.spec.js index 17647cacca90533eab3489facf86235546131b24..9a7387c55eca53e2494dbd840053b3d4ee676bd1 100644 --- a/test/config/migration.spec.js +++ b/test/config/migration.spec.js @@ -7,6 +7,8 @@ describe('config/migration', () => { const config = { enabled: true, maintainYarnLock: true, + onboarding: 'false', + autodiscover: 'true', schedule: 'after 5pm', commitMessage: '{{semanticPrefix}}some commit message', prTitle: '{{semanticPrefix}}some pr title',