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 350f62dea302098524fcfa998b15e599ad122161..84960e757f992f0e5f23fcd0f458f2e4eea2b137 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 578527d48c367591790c1b727b618ea482133d07..f4b0dd4f1b499c3db266235cb65bcf75d2a3fc56 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 2c65d9c9e74a0941af1df43881af4b89a72fccb2..f24a89b2af2d599dee1f4b0cc29b46fd04464f05 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 912bf7b095db9c30842366914d11cc874fc10dcd..9e7f2f3f39055b44b92cfa3e573ba893996c383d 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);