diff --git a/lib/config/types.ts b/lib/config/types.ts index 817fcdca976dcb052fb8890dac24fd8c39ae5ece..74110ea2c3282a877df0fe38e14dd01c07563b21 100644 --- a/lib/config/types.ts +++ b/lib/config/types.ts @@ -31,7 +31,7 @@ export interface RenovateSharedConfig { branchPrefixOld?: string; branchName?: string; branchNameStrict?: boolean; - manager?: string | null; + manager?: string; commitMessage?: string; commitMessagePrefix?: string; confidential?: boolean; @@ -454,7 +454,7 @@ export interface PackageRuleInputConfig extends Record<string, unknown> { sourceUrl?: string | null; language?: string; baseBranch?: string; - manager?: string | null; + manager?: string; datasource?: string; packageRules?: (PackageRule & PackageRuleInputConfig)[]; } diff --git a/lib/modules/manager/gomod/artifacts.spec.ts b/lib/modules/manager/gomod/artifacts.spec.ts index 71a441107d0861851a426a9249322d5aeced7d33..16c65b5fdfafbdc90fce0ba8ebd3be67a6fcdaea 100644 --- a/lib/modules/manager/gomod/artifacts.spec.ts +++ b/lib/modules/manager/gomod/artifacts.spec.ts @@ -1083,9 +1083,11 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename const execSnapshots = mockExecAll(); - git.getRepoStatus.mockResolvedValueOnce({ - modified: ['go.sum'], - } as StatusResult); + git.getRepoStatus.mockResolvedValueOnce( + partial<StatusResult>({ + modified: ['go.sum'], + }) + ); fs.readLocalFile.mockResolvedValueOnce('New go.sum 1'); fs.readLocalFile.mockResolvedValueOnce('New go.sum 2'); fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); @@ -1146,9 +1148,11 @@ describe('modules/manager/gomod/artifacts', () => { fs.readLocalFile.mockResolvedValueOnce('Current go.sum'); fs.readLocalFile.mockResolvedValueOnce(null); // vendor modules filename const execSnapshots = mockExecAll(); - git.getRepoStatus.mockResolvedValueOnce({ - modified: ['go.sum'], - } as StatusResult); + git.getRepoStatus.mockResolvedValueOnce( + partial<StatusResult>({ + modified: ['go.sum'], + }) + ); fs.readLocalFile.mockResolvedValueOnce('New go.sum 1'); fs.readLocalFile.mockResolvedValueOnce('New go.sum 2'); fs.readLocalFile.mockResolvedValueOnce('New go.sum 3'); diff --git a/lib/modules/manager/types.ts b/lib/modules/manager/types.ts index 98ea62bedb9c74fec326e9da12b6f49dec661803..c1fc93c79c3f81302d957b62fec2cd16301a63a1 100644 --- a/lib/modules/manager/types.ts +++ b/lib/modules/manager/types.ts @@ -47,7 +47,7 @@ export interface RangeConfig<T = Record<string, any>> extends ManagerData<T> { currentValue?: string; depName?: string; depType?: string; - manager?: string | null; + manager?: string; rangeStrategy: RangeStrategy; } diff --git a/lib/workers/repository/update/branch/index.spec.ts b/lib/workers/repository/update/branch/index.spec.ts index 08d037066d3cbe1bcedfb386db8f63a3b1b9aaa9..f910665802edbb40cda2cc606a13617723bff4d4 100644 --- a/lib/workers/repository/update/branch/index.spec.ts +++ b/lib/workers/repository/update/branch/index.spec.ts @@ -1627,11 +1627,13 @@ describe('workers/repository/update/branch/index', () => { path: 'pom.xml', contents: 'pom.xml file contents', }; - getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({ - updatedPackageFiles: [updatedPackageFile], - artifactErrors: [], - updatedArtifacts: [], - } as PackageFilesResult); + getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( + partial<PackageFilesResult>({ + updatedPackageFiles: [updatedPackageFile], + artifactErrors: [], + updatedArtifacts: [], + }) + ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], updatedArtifacts: [ @@ -1784,11 +1786,13 @@ describe('workers/repository/update/branch/index', () => { path: 'pom.xml', contents: 'pom.xml file contents', }; - getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce({ - updatedPackageFiles: [updatedPackageFile], - artifactErrors: [], - updatedArtifacts: [], - } as PackageFilesResult); + getUpdated.getUpdatedPackageFiles.mockResolvedValueOnce( + partial<PackageFilesResult>({ + updatedPackageFiles: [updatedPackageFile], + artifactErrors: [], + updatedArtifacts: [], + }) + ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], updatedArtifacts: [ @@ -2014,10 +2018,12 @@ describe('workers/repository/update/branch/index', () => { }); it('Dependency Dashboard All Pending approval', async () => { - jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce({ - updatedPackageFiles: [partial<FileChange>({})], - artifactErrors: [{}], - } as PackageFilesResult); + jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( + partial<PackageFilesResult>({ + updatedPackageFiles: [partial<FileChange>({})], + artifactErrors: [{}], + }) + ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], updatedArtifacts: [partial<FileChange>({})], @@ -2049,10 +2055,12 @@ describe('workers/repository/update/branch/index', () => { }); it('Dependency Dashboard open all rate-limited', async () => { - jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce({ - updatedPackageFiles: [partial<FileChange>({})], - artifactErrors: [{}], - } as PackageFilesResult); + jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( + partial<PackageFilesResult>({ + updatedPackageFiles: [partial<FileChange>({})], + artifactErrors: [{}], + }) + ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], updatedArtifacts: [partial<FileChange>({})], @@ -2084,10 +2092,12 @@ describe('workers/repository/update/branch/index', () => { }); it('continues branch, skips automerge if there are artifact errors', async () => { - jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce({ - updatedPackageFiles: [partial<FileChange>({})], - artifactErrors: [{}], - } as PackageFilesResult); + jest.spyOn(getUpdated, 'getUpdatedPackageFiles').mockResolvedValueOnce( + partial<PackageFilesResult>({ + updatedPackageFiles: [partial<FileChange>({})], + artifactErrors: [{}], + }) + ); npmPostExtract.getAdditionalFiles.mockResolvedValueOnce({ artifactErrors: [], updatedArtifacts: [], diff --git a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts index f1217f926fd83a0fbccfb11293c91e207474c58c..11037405065cc169ebe42521669b287d0a6fbcbe 100644 --- a/lib/workers/repository/update/pr/changelog/release-notes.spec.ts +++ b/lib/workers/repository/update/pr/changelog/release-notes.spec.ts @@ -1,7 +1,7 @@ import { DateTime } from 'luxon'; import { Fixtures } from '../../../../../../test/fixtures'; import * as httpMock from '../../../../../../test/http-mock'; -import { mocked } from '../../../../../../test/util'; +import { mocked, partial } from '../../../../../../test/util'; import { clone } from '../../../../../util/clone'; import * as githubGraphql from '../../../../../util/github/graphql'; import * as _hostRules from '../../../../../util/host-rules'; @@ -46,17 +46,17 @@ const gitlabTreeResponse = [ { path: 'README.md', name: 'README.md', type: 'blob' }, ]; -const githubProject = { +const githubProject = partial<ChangeLogProject>({ type: 'github', apiBaseUrl: 'https://api.github.com/', baseUrl: 'https://github.com/', -} as ChangeLogProject; +}); -const gitlabProject = { +const gitlabProject = partial<ChangeLogProject>({ type: 'gitlab', apiBaseUrl: 'https://gitlab.com/api/v4/', baseUrl: 'https://gitlab.com/', -} as ChangeLogProject; +}); describe('workers/repository/update/pr/changelog/release-notes', () => { const githubReleasesMock = jest.spyOn(githubGraphql, 'queryReleases'); @@ -140,12 +140,15 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { it('returns ChangeLogResult without release notes', async () => { const input = { a: 1, - project: { + project: partial<ChangeLogProject>({ type: 'gitlab', repository: 'https://gitlab.com/gitlab-org/gitter/webapp/', - } as ChangeLogProject, + }), versions: [ - { version: '20.26.0', compare: { url: '' } } as ChangeLogRelease, + partial<ChangeLogRelease>({ + version: '20.26.0', + compare: { url: '' }, + }), ], } as ChangeLogResult; expect(await addReleaseNotes(input, {} as BranchUpgradeConfig)).toEqual({ @@ -171,8 +174,8 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { describe('getReleaseList()', () => { it('should return empty array if no apiBaseUrl', async () => { const res = await getReleaseList( - {} as ChangeLogProject, - {} as ChangeLogRelease + partial<ChangeLogProject>({}), + partial<ChangeLogRelease>({}) ); expect(res).toBeEmptyArray(); }); @@ -202,7 +205,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'some/yet-other-repository', }, - {} as ChangeLogRelease + partial<ChangeLogRelease>({}) ); expect(res).toMatchObject([ { @@ -237,7 +240,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...gitlabProject, repository: 'some/yet-other-repository', }, - {} as ChangeLogRelease + partial<ChangeLogRelease>({}) ); expect(res).toMatchObject([ { @@ -276,7 +279,7 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { apiBaseUrl: 'https://my.custom.domain/api/v4/', baseUrl: 'https://my.custom.domain/', }, - {} as ChangeLogRelease + partial<ChangeLogRelease>({}) ); expect(res).toMatchObject([ { @@ -321,10 +324,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/repository', depName: 'some', }, - { + partial<ChangeLogRelease>({ version: '1.0.0', gitRef: '1.0.0', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toBeNull(); @@ -356,10 +359,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -398,10 +401,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -440,10 +443,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -482,10 +485,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -524,10 +527,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toBeNull(); @@ -559,10 +562,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -603,10 +606,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -647,10 +650,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -690,10 +693,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'other', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -728,10 +731,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { depName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -765,10 +768,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { depName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -802,10 +805,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { depName: 'other', apiBaseUrl: 'https://api.gitlab.com/', }, - { + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -820,17 +823,17 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { it('gets null from repository without gitlab/github in domain', async () => { const res = await getReleaseNotes( - { + partial<ChangeLogProject>({ repository: 'some/repository', depName: 'other', apiBaseUrl: 'https://api.lol.lol/', baseUrl: 'https://lol.lol/', - } as ChangeLogProject, - { + }), + partial<ChangeLogRelease>({ version: '1.0.1', gitRef: '1.0.1', - } as ChangeLogRelease, - {} as BranchUpgradeConfig + }), + partial<BranchUpgradeConfig>({}) ); expect(res).toBeNull(); }); @@ -869,10 +872,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'exampleDep', }, - { + partial<ChangeLogRelease>({ version: '1.0.0', gitRef: '1.0.0', - } as ChangeLogRelease, + }), {} as BranchUpgradeConfig ); expect(res).toEqual({ @@ -903,10 +906,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'some/other-repository', depName: 'exampleDep', }, - { + partial<ChangeLogRelease>({ version: '1.0.0', gitRef: '1.0.0', - } as ChangeLogRelease, + }), { extractVersion: 'app-(?<version>[0-9.]*)' } as BranchUpgradeConfig ); expect(res).toEqual({ @@ -929,10 +932,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'chalk', }, - { + partial<ChangeLogRelease>({ version: '2.0.0', gitRef: '2.0.0', - } as ChangeLogRelease + }) ); expect(res).toBeNull(); }); @@ -954,10 +957,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'chalk', }, - { + partial<ChangeLogRelease>({ version: '2.0.0', gitRef: '2.0.0', - } as ChangeLogRelease + }) ); expect(res).toBeNull(); }); @@ -978,10 +981,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'some/repository1', }, - { + partial<ChangeLogRelease>({ version: '1.0.0', gitRef: '1.0.0', - } as ChangeLogRelease + }) ); expect(res).toBeNull(); }); @@ -1002,10 +1005,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'some/repository2', }, - { + partial<ChangeLogRelease>({ version: '1.0.0', gitRef: '1.0.0', - } as ChangeLogRelease + }) ); expect(res).toBeNull(); }); @@ -1026,10 +1029,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'angular/angular.js', }, - { + partial<ChangeLogRelease>({ version: '1.6.9', gitRef: '1.6.9', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ notesSourceUrl: @@ -1054,10 +1057,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'gitlab-org/gitter/webapp', apiBaseUrl: 'https://api.gitlab.com/', }, - { + partial<ChangeLogRelease>({ version: '20.26.0', gitRef: '20.26.0', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ @@ -1085,10 +1088,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { apiBaseUrl: 'https://my.custom.domain/', baseUrl: 'https://my.custom.domain/', }, - { + partial<ChangeLogRelease>({ version: '20.26.0', gitRef: '20.26.0', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ @@ -1114,10 +1117,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'facebook/jest', }, - { + partial<ChangeLogRelease>({ version: '22.0.0', gitRef: '22.0.0', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ @@ -1149,10 +1152,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'nodeca/js-yaml', sourceDirectory, }, - { + partial<ChangeLogRelease>({ version: '3.10.0', gitRef: '3.10.0', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ @@ -1178,10 +1181,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'nodeca/js-yaml', }, - { + partial<ChangeLogRelease>({ version: '3.10.0', gitRef: '3.10.0', - } as ChangeLogRelease + }) ); expect(res).toMatchSnapshot({ @@ -1193,13 +1196,13 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { it('ignores invalid', async () => { const res = await getReleaseNotesMd( - { + partial<ChangeLogProject>({ repository: 'nodeca/js-yaml', - } as ChangeLogProject, - { + }), + partial<ChangeLogRelease>({ version: '3.10.0', gitRef: '3.10.0', - } as ChangeLogRelease + }) ); expect(res).toBeNull(); }); @@ -1224,10 +1227,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'yargs/yargs', }, - { + partial<ChangeLogRelease>({ version: '15.3.0', gitRef: '15.3.0', - } as ChangeLogRelease + }) ); versionOneNotes = res!; @@ -1254,10 +1257,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...githubProject, repository: 'yargs/yargs', }, - { + partial<ChangeLogRelease>({ version: '15.2.0', gitRef: '15.2.0', - } as ChangeLogRelease + }) ); versionTwoNotes = res!; @@ -1284,10 +1287,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { ...gitlabProject, repository: 'itentialopensource/adapter-utils', }, - { + partial<ChangeLogRelease>({ version: '4.33.0', gitRef: '4.33.0', - } as ChangeLogRelease + }) ); versionTwoNotes = res!; @@ -1320,10 +1323,10 @@ describe('workers/repository/update/pr/changelog/release-notes', () => { repository: 'itentialopensource/adapter-utils', sourceDirectory, }, - { + partial<ChangeLogRelease>({ version: '4.33.0', gitRef: '4.33.0', - } as ChangeLogRelease + }) ); versionTwoNotes = res!;