diff --git a/lib/workers/repository/update/branch/automerge.spec.ts b/lib/workers/repository/update/branch/automerge.spec.ts index ba707e461a6f2bd6ae694557a5df464486b08fe3..06e307a396d1fbd666ee49831b153784406b1e49 100644 --- a/lib/workers/repository/update/branch/automerge.spec.ts +++ b/lib/workers/repository/update/branch/automerge.spec.ts @@ -66,18 +66,28 @@ describe('workers/repository/update/branch/automerge', () => { it('returns false if automerge fails', async () => { config.automerge = true; config.automergeType = 'branch'; + config.baseBranch = 'test-branch'; platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green); git.mergeBranch.mockImplementationOnce(() => { throw new Error('merge error'); }); - expect(await tryBranchAutomerge(config)).toBe('failed'); + + const res = await tryBranchAutomerge(config); + + expect(res).toBe('failed'); + expect(git.checkoutBranch).toHaveBeenCalled(); }); it('returns true if automerge succeeds', async () => { config.automerge = true; config.automergeType = 'branch'; + config.baseBranch = 'test-branch'; platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green); - expect(await tryBranchAutomerge(config)).toBe('automerged'); + + const res = await tryBranchAutomerge(config); + + expect(res).toBe('automerged'); + expect(git.checkoutBranch).toHaveBeenCalledWith('test-branch'); }); it('returns true if automerge succeeds (dry-run)', async () => { diff --git a/lib/workers/repository/update/branch/automerge.ts b/lib/workers/repository/update/branch/automerge.ts index 9bbbc551e9aa89cb4fc30128469f82d39d7e2f91..99808bf23eb5da7b86f89768a9c078049e3902dd 100644 --- a/lib/workers/repository/update/branch/automerge.ts +++ b/lib/workers/repository/update/branch/automerge.ts @@ -4,7 +4,7 @@ import type { RenovateConfig } from '../../../../config/types'; import { logger } from '../../../../logger'; import { platform } from '../../../../modules/platform'; import { BranchStatus } from '../../../../types'; -import { mergeBranch } from '../../../../util/git'; +import { checkoutBranch, mergeBranch } from '../../../../util/git'; import { isScheduledNow } from './schedule'; import { resolveBranchStatus } from './status-checks'; @@ -43,6 +43,7 @@ export async function tryBranchAutomerge( // TODO: types (#7154) logger.info(`DRY-RUN: Would automerge branch ${config.branchName!}`); } else { + await checkoutBranch(config.baseBranch!); await mergeBranch(config.branchName!); } logger.info({ branch: config.branchName }, 'Branch automerged');