mirror of https://github.com/renovatebot/renovate
271 lines
8.8 KiB
TypeScript
271 lines
8.8 KiB
TypeScript
import { Fixtures } from '../../../../test/fixtures';
|
|
import { extractPackageFile } from '.';
|
|
|
|
const conanfile1 = Fixtures.get('conanfile.txt');
|
|
const conanfile2 = Fixtures.get('conanfile2.txt');
|
|
const conanfile3 = Fixtures.get('conanfile.py');
|
|
|
|
describe('modules/manager/conan/extract', () => {
|
|
describe('extractPackageFile', () => {
|
|
it('returns null for empty', () => {
|
|
expect(extractPackageFile('nothing here')).toBeNull();
|
|
});
|
|
|
|
it('extracts multiple image lines from conanfile.txt', () => {
|
|
const res = extractPackageFile(conanfile1);
|
|
expect(res?.deps).toEqual([
|
|
{
|
|
currentValue: '1.9.4',
|
|
depName: 'poco',
|
|
depType: 'requires',
|
|
packageName: 'poco/1.9.4@_/_',
|
|
replaceString: 'poco/1.9.4',
|
|
},
|
|
{
|
|
currentValue: '[~1.2.3, loose=False]',
|
|
depName: 'zlib',
|
|
depType: 'requires',
|
|
packageName: 'zlib/[~1.2.3, loose=False]@_/_',
|
|
replaceString: 'zlib/[~1.2.3, loose=False]',
|
|
},
|
|
{
|
|
currentValue: '8.62.134',
|
|
depName: 'fake',
|
|
depType: 'requires',
|
|
packageName: 'fake/8.62.134@test/dev',
|
|
replaceString: 'fake/8.62.134@test/dev',
|
|
},
|
|
{
|
|
autoReplaceStringTemplate:
|
|
'{{depName}}/{{newValue}}@_/_{{#if newDigest}}#{{newDigest}}{{/if}}',
|
|
currentDigest: 'aff2d03608351db075ec1348a3afc9ff',
|
|
currentValue: '1.17.2',
|
|
depName: 'cairo',
|
|
depType: 'requires',
|
|
packageName: 'cairo/1.17.2@_/_',
|
|
replaceString: 'cairo/1.17.2#aff2d03608351db075ec1348a3afc9ff',
|
|
},
|
|
{
|
|
autoReplaceStringTemplate:
|
|
'{{depName}}/{{newValue}}@_/_{{#if newDigest}}#{{newDigest}}{{/if}}',
|
|
currentDigest: 'aff2d03608351db075ec1348a3afc9ff',
|
|
currentValue: '1.17.2',
|
|
depName: 'cairo',
|
|
depType: 'requires',
|
|
packageName: 'cairo/1.17.2@_/_',
|
|
replaceString: 'cairo/1.17.2@_/_#aff2d03608351db075ec1348a3afc9ff',
|
|
},
|
|
{
|
|
currentValue: '[>1.1 <2.1, include_prerelease=True]',
|
|
depName: '7zip',
|
|
depType: 'build_requires',
|
|
packageName: '7zip/[>1.1 <2.1, include_prerelease=True]@_/_',
|
|
replaceString: '7zip/[>1.1 <2.1, include_prerelease=True]',
|
|
},
|
|
{
|
|
currentValue: '[~1.2.3, loose=False, include_prerelease=True]',
|
|
depName: 'curl',
|
|
depType: 'build_requires',
|
|
packageName:
|
|
'curl/[~1.2.3, loose=False, include_prerelease=True]@test/dev',
|
|
replaceString:
|
|
'curl/[~1.2.3, loose=False, include_prerelease=True]@test/dev',
|
|
},
|
|
{
|
|
currentValue: '[>1.1 <2.1]',
|
|
depName: 'boost',
|
|
depType: 'build_requires',
|
|
packageName: 'boost/[>1.1 <2.1]@_/_',
|
|
replaceString: 'boost/[>1.1 <2.1]',
|
|
},
|
|
{
|
|
currentValue: '[2.8]',
|
|
depName: 'catch2',
|
|
depType: 'build_requires',
|
|
packageName: 'catch2/[2.8]@_/_',
|
|
replaceString: 'catch2/[2.8]',
|
|
},
|
|
{
|
|
currentValue: '[~=3.0]',
|
|
depName: 'openssl',
|
|
depType: 'build_requires',
|
|
packageName: 'openssl/[~=3.0]@test/prod',
|
|
replaceString: 'openssl/[~=3.0]@test/prod',
|
|
},
|
|
{
|
|
currentValue: '[>1.1 || 0.8]',
|
|
depName: 'cmake',
|
|
depType: 'build_requires',
|
|
packageName: 'cmake/[>1.1 || 0.8]@_/_',
|
|
replaceString: 'cmake/[>1.1 || 0.8]',
|
|
},
|
|
{
|
|
currentValue: '[1.2.7 || >=1.2.9 <2.0.0]',
|
|
depName: 'cryptopp',
|
|
depType: 'build_requires',
|
|
packageName: 'cryptopp/[1.2.7 || >=1.2.9 <2.0.0]@test/local',
|
|
replaceString: 'cryptopp/[1.2.7 || >=1.2.9 <2.0.0]@test/local',
|
|
},
|
|
{
|
|
autoReplaceStringTemplate:
|
|
'{{depName}}/{{newValue}}@_/_{{#if newDigest}}#{{newDigest}}{{/if}}',
|
|
currentDigest: 'bc592346b33fd19c1fbffce25d1e4236',
|
|
currentValue: '0.63.0',
|
|
depName: 'meson',
|
|
depType: 'build_requires',
|
|
packageName: 'meson/0.63.0@_/_',
|
|
replaceString: 'meson/0.63.0@_/_#bc592346b33fd19c1fbffce25d1e4236',
|
|
},
|
|
]);
|
|
});
|
|
|
|
it('extracts multiple 0 lines from conanfile.txt', () => {
|
|
const res = extractPackageFile(conanfile2);
|
|
expect(res).toBeNull();
|
|
});
|
|
|
|
it('extracts multiple image lines from conanfile.py', () => {
|
|
const res = extractPackageFile(conanfile3);
|
|
expect(res?.deps).toEqual([
|
|
{
|
|
currentValue: '0.1',
|
|
depName: 'pyreq',
|
|
depType: 'python_requires',
|
|
packageName: 'pyreq/0.1@user/channel',
|
|
replaceString: 'pyreq/0.1@user/channel',
|
|
},
|
|
{
|
|
currentValue: '0.2',
|
|
depName: 'tool_a',
|
|
depType: 'build_requires',
|
|
packageName: 'tool_a/0.2@user/testing',
|
|
replaceString: 'tool_a/0.2@user/testing',
|
|
},
|
|
{
|
|
currentValue: '0.2',
|
|
depName: 'tool_b',
|
|
depType: 'build_requires',
|
|
packageName: 'tool_b/0.2@user/testing',
|
|
replaceString: 'tool_b/0.2@user/testing',
|
|
},
|
|
{
|
|
currentValue: '1.0',
|
|
depName: 'req_a',
|
|
depType: 'requires',
|
|
packageName: 'req_a/1.0@_/_',
|
|
replaceString: 'req_a/1.0',
|
|
},
|
|
{
|
|
currentValue: '2.1',
|
|
depName: 'req_l',
|
|
depType: 'requires',
|
|
packageName: 'req_l/2.1@otheruser/testing',
|
|
replaceString: 'req_l/2.1@otheruser/testing',
|
|
},
|
|
{
|
|
currentValue: '6.1',
|
|
depName: 'req_x',
|
|
depType: 'requires',
|
|
packageName: 'req_x/6.1@useronly/_',
|
|
replaceString: 'req_x/6.1@useronly',
|
|
},
|
|
{
|
|
currentValue: '0.1',
|
|
depName: 'req_b',
|
|
depType: 'requires',
|
|
packageName: 'req_b/0.1@user/testing',
|
|
replaceString: 'req_b/0.1@user/testing',
|
|
},
|
|
{
|
|
currentValue: '0.2',
|
|
depName: 'req_d',
|
|
depType: 'requires',
|
|
packageName: 'req_d/0.2@dummy/stable',
|
|
replaceString: 'req_d/0.2@dummy/stable',
|
|
},
|
|
{
|
|
currentValue: '2.1',
|
|
depName: 'req_e',
|
|
depType: 'requires',
|
|
packageName: 'req_e/2.1@coder/beta',
|
|
replaceString: 'req_e/2.1@coder/beta',
|
|
},
|
|
{
|
|
currentValue: '1.0',
|
|
depName: 'req_c',
|
|
depType: 'requires',
|
|
packageName: 'req_c/1.0@user/stable',
|
|
replaceString: 'req_c/1.0@user/stable',
|
|
},
|
|
{
|
|
currentValue: '1.0',
|
|
depName: 'req_f',
|
|
depType: 'requires',
|
|
packageName: 'req_f/1.0@user/stable',
|
|
replaceString: 'req_f/1.0@user/stable',
|
|
},
|
|
{
|
|
currentValue: '3.0',
|
|
depName: 'req_h',
|
|
depType: 'requires',
|
|
packageName: 'req_h/3.0@other/beta',
|
|
replaceString: 'req_h/3.0@other/beta',
|
|
},
|
|
{
|
|
currentValue: '[>1.0 <1.8]',
|
|
depName: 'req_g',
|
|
depType: 'requires',
|
|
packageName: 'req_g/[>1.0 <1.8]@user/stable',
|
|
replaceString: 'req_g/[>1.0 <1.8]@user/stable',
|
|
},
|
|
{
|
|
currentValue: '[>1.0 <1.8, include_prerelease]',
|
|
depName: 'req_z',
|
|
depType: 'requires',
|
|
packageName: 'req_z/[>1.0 <1.8, include_prerelease]@user/stable',
|
|
replaceString: 'req_z/[>1.0 <1.8, include_prerelease]@user/stable',
|
|
},
|
|
{
|
|
autoReplaceStringTemplate:
|
|
'{{depName}}/{{newValue}}@user/stable{{#if newDigest}}#{{newDigest}}{{/if}}',
|
|
currentDigest: 'bc592346b33fd19c1fbffce25d1e4236',
|
|
currentValue: '1.0',
|
|
depName: 'req_l',
|
|
depType: 'requires',
|
|
packageName: 'req_l/1.0@user/stable',
|
|
replaceString:
|
|
'req_l/1.0@user/stable#bc592346b33fd19c1fbffce25d1e4236',
|
|
},
|
|
{
|
|
currentValue: '1.2',
|
|
depName: 'req_i',
|
|
depType: 'requires',
|
|
packageName: 'req_i/1.2@drl/testing',
|
|
replaceString: 'req_i/1.2@drl/testing',
|
|
},
|
|
{
|
|
currentValue: '2.2',
|
|
depName: 'req_i',
|
|
depType: 'requires',
|
|
packageName: 'req_i/2.2@drl/stable',
|
|
replaceString: 'req_i/2.2@drl/stable',
|
|
},
|
|
{
|
|
currentValue: '1.2',
|
|
depName: 'req_k',
|
|
depType: 'requires',
|
|
packageName: 'req_k/1.2@drl/testing',
|
|
replaceString: 'req_k/1.2@drl/testing',
|
|
},
|
|
{
|
|
currentValue: '0.1',
|
|
depName: 'tool_win',
|
|
depType: 'build_requires',
|
|
packageName: 'tool_win/0.1@user/stable',
|
|
replaceString: 'tool_win/0.1@user/stable',
|
|
},
|
|
]);
|
|
});
|
|
});
|
|
});
|