From e90593e339bf22c99f33ffbb9c69fe1bc17ae919 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Wed, 14 Apr 2021 22:58:06 +0200
Subject: [PATCH] refactor: move automerge check to branch worker

---
 lib/workers/branch/index.spec.ts | 2 +-
 lib/workers/branch/index.ts      | 5 ++++-
 lib/workers/pr/automerge.spec.ts | 4 ----
 lib/workers/pr/automerge.ts      | 6 ------
 4 files changed, 5 insertions(+), 12 deletions(-)

diff --git a/lib/workers/branch/index.spec.ts b/lib/workers/branch/index.spec.ts
index 17b546a9bb..28fa8400d3 100644
--- a/lib/workers/branch/index.spec.ts
+++ b/lib/workers/branch/index.spec.ts
@@ -453,7 +453,7 @@ describe(getName(__filename), () => {
       } as EnsurePrResult);
       prAutomerge.checkAutoMerge.mockResolvedValueOnce(true);
       commit.commitFilesToBranch.mockResolvedValueOnce(null);
-      await branchWorker.processBranch(config);
+      await branchWorker.processBranch({ ...config, automerge: true });
       expect(prWorker.ensurePr).toHaveBeenCalledTimes(1);
       expect(platform.ensureCommentRemoval).toHaveBeenCalledTimes(0);
       expect(prAutomerge.checkAutoMerge).toHaveBeenCalledTimes(1);
diff --git a/lib/workers/branch/index.ts b/lib/workers/branch/index.ts
index 10bf5edfea..cccad4d050 100644
--- a/lib/workers/branch/index.ts
+++ b/lib/workers/branch/index.ts
@@ -599,12 +599,15 @@ export async function processBranch(
             });
           }
         }
-      } else {
+      } else if (config.automerge) {
+        logger.debug('PR is configured for automerge');
         const prAutomerged = await checkAutoMerge(pr, config);
         if (prAutomerged && config.automergeType !== 'pr-comment') {
           await deleteBranchSilently(config.branchName);
           return ProcessBranchResult.Automerged;
         }
+      } else {
+        logger.debug('PR is not configured for automerge');
       }
     }
   } catch (err) /* istanbul ignore next */ {
diff --git a/lib/workers/pr/automerge.spec.ts b/lib/workers/pr/automerge.spec.ts
index f6deec360d..546751c711 100644
--- a/lib/workers/pr/automerge.spec.ts
+++ b/lib/workers/pr/automerge.spec.ts
@@ -24,10 +24,6 @@ describe(getName(__filename), () => {
     afterEach(() => {
       jest.clearAllMocks();
     });
-    it('should not automerge if not configured', async () => {
-      await prAutomerge.checkAutoMerge(pr, config);
-      expect(platform.mergePr).toHaveBeenCalledTimes(0);
-    });
     it('should automerge if enabled and pr is mergeable', async () => {
       config.automerge = true;
       platform.getBranchStatus.mockResolvedValueOnce(BranchStatus.green);
diff --git a/lib/workers/pr/automerge.ts b/lib/workers/pr/automerge.ts
index 38507fc208..1348f0eca3 100644
--- a/lib/workers/pr/automerge.ts
+++ b/lib/workers/pr/automerge.ts
@@ -12,17 +12,11 @@ export async function checkAutoMerge(
   logger.trace({ config }, 'checkAutoMerge');
   const {
     branchName,
-    automerge,
     automergeType,
     automergeComment,
     requiredStatusChecks,
     rebaseRequested,
   } = config;
-  if (!automerge) {
-    logger.debug('No automerge');
-    return false;
-  }
-  logger.debug('PR is configured for automerge');
   // Return if PR not ready for automerge
   if (pr.isConflicted) {
     logger.debug('PR is conflicted');
-- 
GitLab