diff --git a/lib/workers/repository/process/write.spec.ts b/lib/workers/repository/process/write.spec.ts index 35897e1dc69c06d04cf446977b76b0721f6b57b2..76595d833e9a797f5ee534087996b586e0b7d04e 100644 --- a/lib/workers/repository/process/write.spec.ts +++ b/lib/workers/repository/process/write.spec.ts @@ -1,9 +1,11 @@ -import { RenovateConfig, getConfig, mocked } from '../../../../test/util'; +import { RenovateConfig, getConfig, git, mocked } from '../../../../test/util'; import * as _branchWorker from '../../branch'; import { BranchConfig, ProcessBranchResult } from '../../common'; import * as _limits from './limits'; import { writeUpdates } from './write'; +jest.mock('../../../util/git'); + const branchWorker = mocked(_branchWorker); const limits = mocked(_limits); @@ -25,6 +27,7 @@ describe('workers/repository/write', () => { { blockedByPin: true }, {}, ] as never; + git.branchExists.mockReturnValueOnce(false); const res = await writeUpdates(config, branches); expect(res).toEqual('done'); expect(branchWorker.processBranch).toHaveBeenCalledTimes(2); @@ -37,6 +40,7 @@ describe('workers/repository/write', () => { {}, {}, ] as never; + git.branchExists.mockReturnValue(true); branchWorker.processBranch.mockResolvedValueOnce( ProcessBranchResult.PrCreated ); diff --git a/lib/workers/repository/process/write.ts b/lib/workers/repository/process/write.ts index 424653d380c66df5063b0a08b91ff7ceaedd0bd4..62752e0b15536ded7c3ef359b13b02cef0ff674d 100644 --- a/lib/workers/repository/process/write.ts +++ b/lib/workers/repository/process/write.ts @@ -1,5 +1,6 @@ import { RenovateConfig } from '../../../config'; import { addMeta, logger, removeMeta } from '../../../logger'; +import { branchExists } from '../../../util/git'; import { processBranch } from '../../branch'; import { BranchConfig, ProcessBranchResult } from '../../common'; import { Limit, isLimitReached } from '../../global/limits'; @@ -33,6 +34,7 @@ export async function writeUpdates( addMeta({ branch: branch.branchName }); const prLimitReached = prsRemaining <= 0; const commitLimitReached = isLimitReached(Limit.Commits); + const branchExisted = branchExists(branch.branchName); const res = await processBranch(branch, prLimitReached, commitLimitReached); branch.res = res; if ( @@ -54,6 +56,14 @@ export async function writeUpdates( ) { deductPrRemainingCount = 1; } + // istanbul ignore if + if ( + res === ProcessBranchResult.Pending && + !branchExisted && + branchExists(branch.branchName) + ) { + deductPrRemainingCount = 1; + } prsRemaining -= deductPrRemainingCount; } removeMeta(['branch']);