From cd9218444d5cb6f69ac0d6869062249f1a2db266 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Sat, 3 Mar 2018 17:36:45 +0100 Subject: [PATCH] refactor: move node package lookup to node helper --- .../engines.js => _helpers/node/package.js} | 19 +++++++++---------- lib/manager/npm/package.js | 8 ++++++-- .../node/package.spec.js} | 14 +++++++------- test/manager/npm/package.spec.js | 10 +++++++++- 4 files changed, 31 insertions(+), 20 deletions(-) rename lib/manager/{npm/engines.js => _helpers/node/package.js} (78%) rename test/manager/{npm/engines.spec.js => _helpers/node/package.spec.js} (64%) diff --git a/lib/manager/npm/engines.js b/lib/manager/_helpers/node/package.js similarity index 78% rename from lib/manager/npm/engines.js rename to lib/manager/_helpers/node/package.js index 350f62dea3..84960e757f 100644 --- a/lib/manager/npm/engines.js +++ b/lib/manager/_helpers/node/package.js @@ -1,14 +1,11 @@ const semver = require('semver'); -const { getRepoReleases, semverSort } = require('../../datasource/github'); +const { getRepoReleases, semverSort } = require('../../../datasource/github'); -async function renovateEngines(config) { - const { currentVersion, depName: dependency } = config; - logger.debug({ dependency, currentVersion }, 'Found engines'); - if (config.depName !== 'node') { - logger.debug('Skipping non-node engine'); - return []; - } - logger.info('Checking node engine'); +async function getPackageUpdates(config) { + logger.debug('getPackageUpdates()'); + logger.trace({ config }); + const { currentVersion } = config; + logger.info('Checking for nvmrc updates'); if (!semver.valid(currentVersion)) { logger.info({ currentVersion }, 'Skipping non-pinned node version'); return []; @@ -56,4 +53,6 @@ async function renovateEngines(config) { ]; } -module.exports = { renovateEngines }; +module.exports = { + getPackageUpdates, +}; diff --git a/lib/manager/npm/package.js b/lib/manager/npm/package.js index 578527d48c..f4b0dd4f1b 100644 --- a/lib/manager/npm/package.js +++ b/lib/manager/npm/package.js @@ -1,6 +1,6 @@ const npmApi = require('../../datasource/npm'); const versions = require('../../workers/package/versions'); -const { renovateEngines } = require('./engines'); +const nodeManager = require('../_helpers/node/package'); module.exports = { getPackageUpdates, @@ -8,7 +8,11 @@ module.exports = { async function getPackageUpdates(config) { if (config.depType === 'engines') { - return renovateEngines(config); + if (config.depName !== 'node') { + logger.debug('Skipping non-node engine'); + return []; + } + return nodeManager.getPackageUpdates(config); } let results = []; if (config.currentVersion.startsWith('file:')) { diff --git a/test/manager/npm/engines.spec.js b/test/manager/_helpers/node/package.spec.js similarity index 64% rename from test/manager/npm/engines.spec.js rename to test/manager/_helpers/node/package.spec.js index 2c65d9c9e7..f24a89b2af 100644 --- a/test/manager/npm/engines.spec.js +++ b/test/manager/_helpers/node/package.spec.js @@ -1,7 +1,7 @@ -const engines = require('../../../lib/manager/npm/engines'); -const { getRepoReleases } = require('../../../lib/datasource/github'); +const nodeManager = require('../../../../lib/manager/_helpers/node/package'); +const { getRepoReleases } = require('../../../../lib/datasource/github'); -jest.mock('../../../lib/datasource/github'); +jest.mock('../../../../lib/datasource/github'); describe('manager/npm/engines', () => { let config; @@ -12,26 +12,26 @@ describe('manager/npm/engines', () => { }); it('skips non-pinned versions', async () => { config.currentVersion = '8'; - const res = await engines.renovateEngines(config); + const res = await nodeManager.getPackageUpdates(config); expect(res).toEqual([]); }); it('returns empty', async () => { config.currentVersion = '8.9.0'; getRepoReleases.mockReturnValueOnce([]); - const res = await engines.renovateEngines(config); + const res = await nodeManager.getPackageUpdates(config); expect(res).toEqual([]); }); it('filters v', async () => { config.currentVersion = '8.9.0'; getRepoReleases.mockReturnValueOnce(['v8.0.0', 'v8.9.1']); - const res = await engines.renovateEngines(config); + const res = await nodeManager.getPackageUpdates(config); expect(res).toHaveLength(1); expect(res[0].newVersion).toEqual('8.9.1'); }); it('skips major versions', async () => { config.currentVersion = '8.9.0'; getRepoReleases.mockReturnValueOnce(['v9.4.0']); - const res = await engines.renovateEngines(config); + const res = await nodeManager.getPackageUpdates(config); expect(res).toHaveLength(0); }); }); diff --git a/test/manager/npm/package.spec.js b/test/manager/npm/package.spec.js index 912bf7b095..9e7f2f3f39 100644 --- a/test/manager/npm/package.spec.js +++ b/test/manager/npm/package.spec.js @@ -4,6 +4,7 @@ const npm = require('../../../lib/manager/npm/package'); const defaultConfig = require('../../../lib/config/defaults').getConfig(); jest.mock('../../../lib/datasource/npm'); +jest.mock('../../../lib/manager/_helpers/node/package'); npmApi.getDependency = jest.fn(); describe('lib/workers/package/npm', () => { @@ -17,11 +18,18 @@ describe('lib/workers/package/npm', () => { currentVersion: '1.0.0', }; }); - it('calls engines function', async () => { + it('skips non-node engines', async () => { config.depType = 'engines'; const res = await npm.getPackageUpdates(config); expect(res).toHaveLength(0); }); + it('calls node for node engines', async () => { + config.depType = 'engines'; + config.depName = 'node'; + config.currentVersion = '8.9.0'; + const res = await npm.getPackageUpdates(config); + expect(res).toBeUndefined(); + }); it('returns if using a file reference', async () => { config.currentVersion = 'file:../sibling/package.json'; const res = await npm.getPackageUpdates(config); -- GitLab