Skip to content
Snippets Groups Projects
Select Git revision
  • d6c5aa66630306ef2b08cf3c0b88e67f7bd21ddf
  • main default protected
  • renovate/migrate-config
  • next
  • fix/36615b-branch-reuse-no-cache
  • renovate/main-redis-5.x
  • revert-31645-feat/rename-gradle-wrapper-validation-action
  • chore/punycode
  • refactor/pin-new-value
  • feat/36219--git-x509-signing
  • feat/structured-logger
  • hotfix/39.264.1
  • feat/skip-dangling
  • gh-readonly-queue/next/pr-36034-7a061c4ca1024a19e2c295d773d9642625d1c2be
  • hotfix/39.238.3
  • refactor/gitlab-auto-approve
  • feat/template-strings
  • gh-readonly-queue/next/pr-35654-137d934242c784e0c45d4b957362214f0eade1d7
  • fix/32307-global-extends-merging
  • fix/32307-global-extends-repositories
  • gh-readonly-queue/next/pr-35009-046ebf7cb84ab859f7fefceb5fa53a54ce9736f8
  • 41.42.2
  • 41.42.1
  • 41.42.0
  • 41.41.0
  • 41.40.0
  • 41.39.0
  • 41.38.2
  • 41.38.1
  • 41.38.0
  • 41.37.12
  • 41.37.11
  • 41.37.10
  • 41.37.9
  • 41.37.8
  • 41.37.7
  • 41.37.6
  • 41.37.5
  • 41.37.4
  • 41.37.3
  • 41.37.2
41 results

index.spec.js

Blame
  • index.spec.js 3.13 KiB
    const npmApi = require('../../../lib/api/npm');
    const versions = require('../../../lib/workers/package/versions');
    const pkgWorker = require('../../../lib/workers/package/index');
    const defaultConfig = require('../../../lib/config/defaults').getConfig();
    const configParser = require('../../../lib/config');
    
    jest.mock('../../../lib/workers/branch/schedule');
    jest.mock('../../../lib/api/npm');
    
    describe('lib/workers/package/index', () => {
      describe('renovatePackage(config)', () => {
        let config;
        beforeEach(() => {
          config = configParser.filterConfig(defaultConfig, 'package');
          config.depName = 'foo';
          config.currentVersion = '1.0.0';
        });
        it('returns empty if package is disabled', async () => {
          config.enabled = false;
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toMatchObject([]);
        });
        it('returns warning if using invalid version', async () => {
          config.currentVersion =
            'git+ssh://git@github.com/joefraley/eslint-config-meridian.git';
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toMatchSnapshot();
        });
        it('returns error if no npm dep found', async () => {
          config.repoIsOnboarded = true;
          config.schedule = 'some schedule';
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toMatchSnapshot();
          expect(res).toHaveLength(1);
          expect(res[0].type).toEqual('error');
          expect(npmApi.getDependency.mock.calls.length).toBe(1);
        });
        it('returns error if no npm scoped dep found', async () => {
          config.depName = '@foo/something';
          config.repoIsOnboarded = true;
          config.schedule = 'some schedule';
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toMatchSnapshot();
          expect(res).toHaveLength(1);
          expect(res[0].type).toEqual('error');
        });
        it('returns warning if warning found', async () => {
          npmApi.getDependency.mockReturnValueOnce({});
          versions.determineUpgrades = jest.fn(() => [
            {
              type: 'warning',
              message: 'bad version',
            },
          ]);
          const res = await pkgWorker.renovatePackage(config);
          expect(res[0].type).toEqual('warning');
        });
        it('returns array if upgrades found', async () => {
          npmApi.getDependency.mockReturnValueOnce({ repositoryUrl: 'some-url' });
          versions.determineUpgrades = jest.fn(() => [{}]);
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toHaveLength(1);
          expect(Object.keys(res[0])).toMatchSnapshot();
        });
        it('merges type', async () => {
          npmApi.getDependency.mockReturnValueOnce({});
          versions.determineUpgrades = jest.fn(() => [
            { isMajor: true },
            { isMinor: true },
            { isPatch: true },
          ]);
          const res = await pkgWorker.renovatePackage(config);
          expect(res).toHaveLength(3);
          expect(Object.keys(res[0])).toMatchSnapshot();
          expect(res[0].branchName.indexOf('newVersionMinor')).toBe(-1);
          expect(res[1].branchName.indexOf('newVersionMinor')).toBe(-1);
          expect(res[2].branchName.indexOf('newVersionMinor')).not.toBe(-1);
        });
      });
    });