From e108537964a1ec1b1b981248074feb879861bb2c Mon Sep 17 00:00:00 2001 From: Rhys Arkins Date: Mon, 13 Sep 2021 15:27:01 +0200 Subject: [PATCH] fix(config): migrate empty array check (#11713) --- lib/config/migration.spec.ts | 11 +++++++++++ lib/config/migration.ts | 18 ++++++++++-------- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/lib/config/migration.spec.ts b/lib/config/migration.spec.ts index 5073963864aa03..462124b8e28b83 100644 --- a/lib/config/migration.spec.ts +++ b/lib/config/migration.spec.ts @@ -772,4 +772,15 @@ describe('config/migration', () => { expect(isMigrated).toBe(true); expect(migratedConfig).toMatchSnapshot(); }); + it('migrates empty requiredStatusChecks', () => { + const config: RenovateConfig = { + requiredStatusChecks: [], + }; + const { isMigrated, migratedConfig } = configMigration.migrateConfig( + config, + defaultConfig + ); + expect(isMigrated).toBe(true); + expect(migratedConfig).toMatchInlineSnapshot(`Object {}`); + }); }); diff --git a/lib/config/migration.ts b/lib/config/migration.ts index 13497ff59cbd13..1fb49fc3a3caa3 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -490,16 +490,18 @@ export function migrateConfig( delete migratedConfig.node; } } else if (is.array(val)) { - const newArray = []; - for (const item of migratedConfig[key] as unknown[]) { - if (is.object(item) && !is.array(item)) { - const arrMigrate = migrateConfig(item as RenovateConfig, key); - newArray.push(arrMigrate.migratedConfig); - } else { - newArray.push(item); + if (is.array(migratedConfig?.[key])) { + const newArray = []; + for (const item of migratedConfig[key] as unknown[]) { + if (is.object(item) && !is.array(item)) { + const arrMigrate = migrateConfig(item as RenovateConfig, key); + newArray.push(arrMigrate.migratedConfig); + } else { + newArray.push(item); + } } + migratedConfig[key] = newArray; } - migratedConfig[key] = newArray; } else if (key === 'compatibility' && is.object(val)) { migratedConfig.constraints = migratedConfig.compatibility; delete migratedConfig.compatibility;