From ced374ea24eb43da8cec31c5765fe59f8a755367 Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Tue, 3 Apr 2018 06:52:04 +0200
Subject: [PATCH] fix: disable manager if parentManager is disabled

Closes #1778
---
 lib/manager/index.js       |  5 +++++
 test/manager/index.spec.js | 11 ++++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/lib/manager/index.js b/lib/manager/index.js
index 71a1a880bf..fd0a5f18d9 100644
--- a/lib/manager/index.js
+++ b/lib/manager/index.js
@@ -57,6 +57,11 @@ async function detectPackageFiles(config) {
       logger.debug(manager + ' is disabled');
       continue; // eslint-disable-line no-continue
     }
+    // Check if the parent is manually disabled
+    if (parentManager && config[parentManager].enabled === false) {
+      logger.debug(manager + ' parentManager is disabled');
+      continue; // eslint-disable-line no-continue
+    }
     let files = [];
     if (managers[manager].detectPackageFiles) {
       logger.debug('manager has own detect function');
diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js
index 9ca1451dbf..d4fff3a8e1 100644
--- a/test/manager/index.spec.js
+++ b/test/manager/index.spec.js
@@ -16,7 +16,7 @@ describe('manager', () => {
     let config;
     beforeEach(() => {
       config = {
-        ...defaultConfig,
+        ...JSON.parse(JSON.stringify(defaultConfig)),
         warnings: [],
       };
     });
@@ -29,6 +29,15 @@ describe('manager', () => {
       const res = await manager.detectPackageFiles(config);
       expect(res).toHaveLength(0);
     });
+    it('skips if parentManager is disabled', async () => {
+      platform.getFileList.mockReturnValueOnce([
+        'package.json',
+        '.circleci/config.yml',
+      ]);
+      config.docker.enabled = false;
+      const res = await manager.detectPackageFiles(config);
+      expect(res).toHaveLength(1);
+    });
     it('adds package files to object', async () => {
       platform.getFileList.mockReturnValueOnce([
         'package.json',
-- 
GitLab