From 7c721565628ceb1dfa59e1c5e183ad7c308b1e26 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@keylocation.sg> Date: Wed, 15 Nov 2017 13:39:44 +0100 Subject: [PATCH] refactor: move semantic commit detection from init to later updates (#1170) --- lib/workers/repository/init/apis.js | 2 -- lib/workers/repository/updates/determine.js | 7 +++++++ lib/workers/repository/{init => updates}/semantic.js | 6 +++--- .../workers/repository/{init => updates}/semantic.spec.js | 8 ++++---- 4 files changed, 14 insertions(+), 9 deletions(-) rename lib/workers/repository/{init => updates}/semantic.js (83%) rename test/workers/repository/{init => updates}/semantic.spec.js (82%) diff --git a/lib/workers/repository/init/apis.js b/lib/workers/repository/init/apis.js index 5433ace659..2f6e0d25ce 100644 --- a/lib/workers/repository/init/apis.js +++ b/lib/workers/repository/init/apis.js @@ -1,5 +1,4 @@ const { initPlatform } = require('../../../platform'); -const { detectSemanticCommits } = require('./semantic'); const npmApi = require('../../../manager/npm/registry'); function assignPlatform(config) { @@ -25,7 +24,6 @@ async function initApis(input, token) { npmApi.setNpmrc(config.npmrc); config = await assignPlatform(config); config = await getPlatformConfig(config); - config = await detectSemanticCommits(config); return config; } diff --git a/lib/workers/repository/updates/determine.js b/lib/workers/repository/updates/determine.js index 67b3eeaf1c..bf83e2fa94 100644 --- a/lib/workers/repository/updates/determine.js +++ b/lib/workers/repository/updates/determine.js @@ -1,5 +1,6 @@ const packageFileWorker = require('../../package-file'); const { mergeChildConfig, filterConfig } = require('../../../config'); +const { detectSemanticCommits } = require('./semantic'); async function determineRepoUpgrades(config) { logger.debug('determineRepoUpgrades()'); @@ -31,9 +32,14 @@ async function determineRepoUpgrades(config) { ); } } + let semanticCommits; + if (upgrades.length) { + semanticCommits = await detectSemanticCommits(config); + } // Sanitize depNames upgrades = upgrades.map(upgrade => ({ ...upgrade, + semanticCommits, depNameSanitized: upgrade.depName ? upgrade.depName .replace('@', '') @@ -41,6 +47,7 @@ async function determineRepoUpgrades(config) { .toLowerCase() : undefined, })); + logger.debug('returning upgrades'); return { ...config, upgrades }; } diff --git a/lib/workers/repository/init/semantic.js b/lib/workers/repository/updates/semantic.js similarity index 83% rename from lib/workers/repository/init/semantic.js rename to lib/workers/repository/updates/semantic.js index 1f5603caa7..bc00d9a934 100644 --- a/lib/workers/repository/init/semantic.js +++ b/lib/workers/repository/updates/semantic.js @@ -2,19 +2,19 @@ const conventionalCommitsDetector = require('conventional-commits-detector'); async function detectSemanticCommits(config) { if (config.semanticCommits !== null) { - return config; + return config.semanticCommits; } const commitMessages = await platform.getCommitMessages(); logger.trace(`commitMessages=${JSON.stringify(commitMessages)}`); const type = conventionalCommitsDetector(commitMessages); if (type === 'unknown') { logger.debug('No semantic commit type found'); - return { ...config, semanticCommits: false }; + return false; } logger.debug( `Found semantic commit type ${type} - enabling semantic commits` ); - return { ...config, semanticCommits: true }; + return true; } module.exports = { diff --git a/test/workers/repository/init/semantic.spec.js b/test/workers/repository/updates/semantic.spec.js similarity index 82% rename from test/workers/repository/init/semantic.spec.js rename to test/workers/repository/updates/semantic.spec.js index d8ee66a72b..814814b095 100644 --- a/test/workers/repository/init/semantic.spec.js +++ b/test/workers/repository/updates/semantic.spec.js @@ -8,26 +8,26 @@ beforeEach(() => { const { detectSemanticCommits, -} = require('../../../../lib/workers/repository/init/semantic'); +} = require('../../../../lib/workers/repository/updates/semantic'); describe('workers/repository/init/semantic', () => { describe('detectSemanticCommits()', () => { it('returns config if already set', async () => { config.semanticCommits = true; const res = await detectSemanticCommits(config); - expect(res).toBe(config); + expect(res).toBe(true); }); it('detects false if unknown', async () => { config.semanticCommits = null; platform.getCommitMessages.mockReturnValue(['foo', 'bar']); const res = await detectSemanticCommits(config); - expect(res.semanticCommits).toBe(false); + expect(res).toBe(false); }); it('detects true if known', async () => { config.semanticCommits = null; platform.getCommitMessages.mockReturnValue(['fix: foo', 'refactor: bar']); const res = await detectSemanticCommits(config); - expect(res.semanticCommits).toBe(true); + expect(res).toBe(true); }); }); }); -- GitLab