mirror of
https://github.com/renovatebot/renovate.git
synced 2025-01-11 13:48:55 +00:00
1d2c1a35e3
Co-authored-by: Michael Kriese <michael.kriese@gmx.de>
280 lines
7.7 KiB
TypeScript
280 lines
7.7 KiB
TypeScript
import { Fixtures } from '../../../../test/fixtures';
|
|
import { GlobalConfig } from '../../../config/global';
|
|
import { extractPackageFile } from '.';
|
|
|
|
describe('modules/manager/mix/extract', () => {
|
|
beforeEach(() => {
|
|
GlobalConfig.set({ localDir: '' });
|
|
});
|
|
|
|
describe('extractPackageFile()', () => {
|
|
it('returns empty for invalid dependency file', async () => {
|
|
const res = await extractPackageFile('nothing here', 'mix.exs');
|
|
expect(res).toBeNull();
|
|
});
|
|
|
|
it('extracts all dependencies when no lockfile', async () => {
|
|
const res = await extractPackageFile(Fixtures.get('mix.exs'), 'mix.exs');
|
|
expect(res?.deps).toEqual([
|
|
{
|
|
currentValue: '~> 0.8.1',
|
|
datasource: 'hex',
|
|
depName: 'postgrex',
|
|
depType: 'prod',
|
|
packageName: 'postgrex',
|
|
},
|
|
{
|
|
currentValue: '<1.7.0 or ~>1.7.1',
|
|
datasource: 'hex',
|
|
depName: 'ranch',
|
|
depType: 'prod',
|
|
packageName: 'ranch',
|
|
},
|
|
{
|
|
currentDigest: undefined,
|
|
currentValue: '0.6.0',
|
|
datasource: 'github-tags',
|
|
depName: 'cowboy',
|
|
depType: 'prod',
|
|
packageName: 'ninenines/cowboy',
|
|
},
|
|
{
|
|
currentDigest: undefined,
|
|
currentValue: 'main',
|
|
datasource: 'git-tags',
|
|
depName: 'phoenix',
|
|
depType: 'prod',
|
|
packageName: 'https://github.com/phoenixframework/phoenix.git',
|
|
},
|
|
{
|
|
currentDigest: '795036d997c7503b21fb64d6bf1a89b83c44f2b5',
|
|
currentValue: undefined,
|
|
datasource: 'github-tags',
|
|
depName: 'ecto',
|
|
depType: 'prod',
|
|
packageName: 'elixir-ecto/ecto',
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'secret',
|
|
depType: 'prod',
|
|
packageName: 'secret:acme',
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'also_secret',
|
|
depType: 'dev',
|
|
packageName: 'also_secret:acme',
|
|
},
|
|
{
|
|
currentValue: '>0.2.0 and <=1.0.0',
|
|
datasource: 'hex',
|
|
depName: 'metrics',
|
|
depType: 'prod',
|
|
packageName: 'metrics',
|
|
},
|
|
{
|
|
currentValue: '>= 1.0.0',
|
|
datasource: 'hex',
|
|
depName: 'jason',
|
|
depType: 'prod',
|
|
packageName: 'jason',
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'hackney',
|
|
depType: 'prod',
|
|
packageName: 'hackney',
|
|
},
|
|
{
|
|
currentValue: '~> 6.1',
|
|
datasource: 'hex',
|
|
depName: 'hammer_backend_redis',
|
|
depType: 'prod',
|
|
packageName: 'hammer_backend_redis',
|
|
},
|
|
{
|
|
currentValue: '== 1.0.10',
|
|
currentVersion: '1.0.10',
|
|
datasource: 'hex',
|
|
depName: 'castore',
|
|
depType: 'prod',
|
|
packageName: 'castore',
|
|
},
|
|
{
|
|
currentValue: '~> 2.0.0',
|
|
datasource: 'hex',
|
|
depName: 'gun',
|
|
depType: 'prod',
|
|
packageName: 'grpc_gun',
|
|
},
|
|
{
|
|
currentValue: '~> 0.4.0',
|
|
datasource: 'hex',
|
|
depName: 'another_gun',
|
|
depType: 'prod',
|
|
packageName: 'raygun',
|
|
},
|
|
{
|
|
currentValue: '~> 1.7',
|
|
datasource: 'hex',
|
|
depName: 'credo',
|
|
depType: 'dev',
|
|
packageName: 'credo',
|
|
},
|
|
{
|
|
currentValue: '== 0.37.0',
|
|
currentVersion: '0.37.0',
|
|
datasource: 'hex',
|
|
depName: 'floki',
|
|
depType: 'dev',
|
|
packageName: 'floki',
|
|
},
|
|
]);
|
|
});
|
|
|
|
it('extracts all dependencies and adds the locked version if lockfile present', async () => {
|
|
// allows fetching the sibling mix.lock file
|
|
GlobalConfig.set({ localDir: 'lib/modules/manager/mix/__fixtures__' });
|
|
const res = await extractPackageFile(Fixtures.get('mix.exs'), 'mix.exs');
|
|
expect(res?.deps).toEqual([
|
|
{
|
|
currentValue: '~> 0.8.1',
|
|
datasource: 'hex',
|
|
depName: 'postgrex',
|
|
depType: 'prod',
|
|
packageName: 'postgrex',
|
|
lockedVersion: '0.8.4',
|
|
},
|
|
{
|
|
currentValue: '<1.7.0 or ~>1.7.1',
|
|
datasource: 'hex',
|
|
depName: 'ranch',
|
|
depType: 'prod',
|
|
packageName: 'ranch',
|
|
lockedVersion: '1.7.1',
|
|
},
|
|
{
|
|
currentDigest: undefined,
|
|
currentValue: '0.6.0',
|
|
datasource: 'github-tags',
|
|
depName: 'cowboy',
|
|
depType: 'prod',
|
|
packageName: 'ninenines/cowboy',
|
|
lockedVersion: '0.6.0',
|
|
},
|
|
{
|
|
currentDigest: undefined,
|
|
currentValue: 'main',
|
|
datasource: 'git-tags',
|
|
depName: 'phoenix',
|
|
depType: 'prod',
|
|
packageName: 'https://github.com/phoenixframework/phoenix.git',
|
|
lockedVersion: undefined,
|
|
},
|
|
{
|
|
currentDigest: '795036d997c7503b21fb64d6bf1a89b83c44f2b5',
|
|
currentValue: undefined,
|
|
datasource: 'github-tags',
|
|
depName: 'ecto',
|
|
depType: 'prod',
|
|
packageName: 'elixir-ecto/ecto',
|
|
lockedVersion: undefined,
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'secret',
|
|
depType: 'prod',
|
|
packageName: 'secret:acme',
|
|
lockedVersion: '1.5.0',
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'also_secret',
|
|
depType: 'dev',
|
|
packageName: 'also_secret:acme',
|
|
lockedVersion: '1.3.4',
|
|
},
|
|
{
|
|
currentValue: '>0.2.0 and <=1.0.0',
|
|
datasource: 'hex',
|
|
depName: 'metrics',
|
|
depType: 'prod',
|
|
packageName: 'metrics',
|
|
lockedVersion: '1.0.0',
|
|
},
|
|
{
|
|
currentValue: '>= 1.0.0',
|
|
datasource: 'hex',
|
|
depName: 'jason',
|
|
depType: 'prod',
|
|
packageName: 'jason',
|
|
lockedVersion: '1.4.4',
|
|
},
|
|
{
|
|
currentValue: '~> 1.0',
|
|
datasource: 'hex',
|
|
depName: 'hackney',
|
|
depType: 'prod',
|
|
packageName: 'hackney',
|
|
lockedVersion: '1.20.1',
|
|
},
|
|
{
|
|
currentValue: '~> 6.1',
|
|
datasource: 'hex',
|
|
depName: 'hammer_backend_redis',
|
|
depType: 'prod',
|
|
packageName: 'hammer_backend_redis',
|
|
lockedVersion: '6.2.0',
|
|
},
|
|
{
|
|
currentValue: '== 1.0.10',
|
|
currentVersion: '1.0.10',
|
|
datasource: 'hex',
|
|
depName: 'castore',
|
|
depType: 'prod',
|
|
packageName: 'castore',
|
|
lockedVersion: '1.0.10',
|
|
},
|
|
{
|
|
currentValue: '~> 2.0.0',
|
|
datasource: 'hex',
|
|
depName: 'gun',
|
|
depType: 'prod',
|
|
packageName: 'grpc_gun',
|
|
lockedVersion: '2.0.1',
|
|
},
|
|
{
|
|
currentValue: '~> 0.4.0',
|
|
datasource: 'hex',
|
|
depName: 'another_gun',
|
|
depType: 'prod',
|
|
packageName: 'raygun',
|
|
lockedVersion: '0.4.0',
|
|
},
|
|
{
|
|
currentValue: '~> 1.7',
|
|
datasource: 'hex',
|
|
depName: 'credo',
|
|
depType: 'dev',
|
|
packageName: 'credo',
|
|
lockedVersion: '1.7.10',
|
|
},
|
|
{
|
|
currentValue: '== 0.37.0',
|
|
currentVersion: '0.37.0',
|
|
datasource: 'hex',
|
|
depName: 'floki',
|
|
depType: 'dev',
|
|
lockedVersion: '0.37.0',
|
|
packageName: 'floki',
|
|
},
|
|
]);
|
|
});
|
|
});
|
|
});
|