From 0af1be577d5ef15ceffdcb8e2f7fe9b97e89f9ca Mon Sep 17 00:00:00 2001 From: Maksim <m.v.sharipov@gmail.com> Date: Fri, 25 Mar 2022 20:39:14 +0100 Subject: [PATCH] refactor(migrations): ignoreNpmrcFile (#14802) --- lib/config/migration.ts | 5 --- .../ignore-npmrc-file-migration.spec.ts | 38 +++++++++++++++++++ .../custom/ignore-npmrc-file-migration.ts | 15 ++++++++ lib/config/migrations/migrations-service.ts | 2 + 4 files changed, 55 insertions(+), 5 deletions(-) create mode 100644 lib/config/migrations/custom/ignore-npmrc-file-migration.spec.ts create mode 100644 lib/config/migrations/custom/ignore-npmrc-file-migration.ts diff --git a/lib/config/migration.ts b/lib/config/migration.ts index cee715845a..2f56ec68e8 100644 --- a/lib/config/migration.ts +++ b/lib/config/migration.ts @@ -122,11 +122,6 @@ export function migrateConfig( regEx(/{{depNameShort}}/g), '{{depName}}' ); - } else if (key === 'ignoreNpmrcFile') { - delete migratedConfig.ignoreNpmrcFile; - if (!is.string(migratedConfig.npmrc)) { - migratedConfig.npmrc = ''; - } } else if ( key === 'branchPrefix' && is.string(val) && diff --git a/lib/config/migrations/custom/ignore-npmrc-file-migration.spec.ts b/lib/config/migrations/custom/ignore-npmrc-file-migration.spec.ts new file mode 100644 index 0000000000..9d32f66197 --- /dev/null +++ b/lib/config/migrations/custom/ignore-npmrc-file-migration.spec.ts @@ -0,0 +1,38 @@ +import { IgnoreNpmrcFileMigration } from './ignore-npmrc-file-migration'; + +describe('config/migrations/custom/ignore-npmrc-file-migration', () => { + it('should init npmrc field', () => { + expect(IgnoreNpmrcFileMigration).toMigrate( + { + ignoreNpmrcFile: true, + }, + { + npmrc: '', + } + ); + }); + + it('should not change npmrc field if it represents string value', () => { + expect(IgnoreNpmrcFileMigration).toMigrate( + { + ignoreNpmrcFile: true, + npmrc: '', + }, + { + npmrc: '', + } + ); + }); + + it('should change npmrc field if it not represents string value', () => { + expect(IgnoreNpmrcFileMigration).toMigrate( + { + ignoreNpmrcFile: true, + npmrc: true, + } as any, + { + npmrc: '', + } + ); + }); +}); diff --git a/lib/config/migrations/custom/ignore-npmrc-file-migration.ts b/lib/config/migrations/custom/ignore-npmrc-file-migration.ts new file mode 100644 index 0000000000..b64b2129a1 --- /dev/null +++ b/lib/config/migrations/custom/ignore-npmrc-file-migration.ts @@ -0,0 +1,15 @@ +import is from '@sindresorhus/is'; +import { AbstractMigration } from '../base/abstract-migration'; + +export class IgnoreNpmrcFileMigration extends AbstractMigration { + override readonly deprecated = true; + override readonly propertyName = 'ignoreNpmrcFile'; + + override run(): void { + const npmrc = this.get('npmrc'); + + if (!is.string(npmrc)) { + this.setHard('npmrc', ''); + } + } +} diff --git a/lib/config/migrations/migrations-service.ts b/lib/config/migrations/migrations-service.ts index 69b2cff800..1d0eb9938f 100644 --- a/lib/config/migrations/migrations-service.ts +++ b/lib/config/migrations/migrations-service.ts @@ -16,6 +16,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 { IgnoreNpmrcFileMigration } from './custom/ignore-npmrc-file-migration'; import { PackageNameMigration } from './custom/package-name-migration'; import { PackagePatternMigration } from './custom/package-pattern-migration'; import { PackagesMigration } from './custom/packages-migration'; @@ -78,6 +79,7 @@ export class MigrationsService { GoModTidyMigration, HostRulesMigration, IgnoreNodeModulesMigration, + IgnoreNpmrcFileMigration, PackageNameMigration, PackagePatternMigration, PackagesMigration, -- GitLab