From 12a63f30c2652d78bd804a33a89fc45724401c06 Mon Sep 17 00:00:00 2001
From: Maksim <m.v.sharipov@gmail.com>
Date: Mon, 14 Mar 2022 08:10:36 +0100
Subject: [PATCH] refactor(migrations): packageName (#14645)

---
 lib/config/migration.ts                            |  3 ---
 .../custom/package-name-migration.spec.ts          | 14 ++++++++++++++
 .../migrations/custom/package-name-migration.ts    | 10 ++++++++++
 lib/config/migrations/migrations-service.ts        |  2 ++
 4 files changed, 26 insertions(+), 3 deletions(-)
 create mode 100644 lib/config/migrations/custom/package-name-migration.spec.ts
 create mode 100644 lib/config/migrations/custom/package-name-migration.ts

diff --git a/lib/config/migration.ts b/lib/config/migration.ts
index 796c1c83e8..35fe1fa078 100644
--- a/lib/config/migration.ts
+++ b/lib/config/migration.ts
@@ -234,9 +234,6 @@ export function migrateConfig(
           migratedConfig.packages
         );
         delete migratedConfig.packages;
-      } else if (key === 'packageName') {
-        migratedConfig.packageNames = [val];
-        delete migratedConfig.packageName;
       } else if (key === 'packagePattern') {
         migratedConfig.packagePatterns = [val];
         delete migratedConfig.packagePattern;
diff --git a/lib/config/migrations/custom/package-name-migration.spec.ts b/lib/config/migrations/custom/package-name-migration.spec.ts
new file mode 100644
index 0000000000..3b2b1a890a
--- /dev/null
+++ b/lib/config/migrations/custom/package-name-migration.spec.ts
@@ -0,0 +1,14 @@
+import { PackageNameMigration } from './package-name-migration';
+
+describe('config/migrations/custom/package-name-migration', () => {
+  it('should migrate value to array', () => {
+    expect(PackageNameMigration).toMigrate(
+      {
+        packageName: 'test',
+      },
+      {
+        packageNames: ['test'],
+      }
+    );
+  });
+});
diff --git a/lib/config/migrations/custom/package-name-migration.ts b/lib/config/migrations/custom/package-name-migration.ts
new file mode 100644
index 0000000000..e561e80e9f
--- /dev/null
+++ b/lib/config/migrations/custom/package-name-migration.ts
@@ -0,0 +1,10 @@
+import { AbstractMigration } from '../base/abstract-migration';
+
+export class PackageNameMigration extends AbstractMigration {
+  override readonly deprecated = true;
+  override readonly propertyName = 'packageName';
+
+  override run(value: unknown): void {
+    this.setSafely('packageNames', [value]);
+  }
+}
diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts
index 67a16527f4..e2ace25e5e 100644
--- a/lib/config/migrations/migrations-service.ts
+++ b/lib/config/migrations/migrations-service.ts
@@ -13,6 +13,7 @@ import { EnabledManagersMigration } from './custom/enabled-managers-migration';
 import { GoModTidyMigration } from './custom/go-mod-tidy-migration';
 import { HostRulesMigration } from './custom/host-rules-migration';
 import { IgnoreNodeModulesMigration } from './custom/ignore-node-modules-migration';
+import { PackageNameMigration } from './custom/package-name-migration';
 import { PathRulesMigration } from './custom/path-rules-migration';
 import { PinVersionsMigration } from './custom/pin-versions-migration';
 import { RaiseDeprecationWarningsMigration } from './custom/raise-deprecation-warnings-migration';
@@ -69,6 +70,7 @@ export class MigrationsService {
     GoModTidyMigration,
     HostRulesMigration,
     IgnoreNodeModulesMigration,
+    PackageNameMigration,
     PathRulesMigration,
     PinVersionsMigration,
     RaiseDeprecationWarningsMigration,
-- 
GitLab