mirror of
https://github.com/renovatebot/renovate.git
synced 2026-10-31 01:37:24 +00:00
2fc46bdcfa
* test(manager): replace file snapshots with explicit assertions * test(manager): replace inline snapshots with explicit assertions * test(manager): assert on relevant sections instead of full bodies * test(manager): drop assertions implied by full equality * test(manager): address review feedback * test(manager): assert depType and versioning in the regex matcher
210 lines
7.5 KiB
TypeScript
210 lines
7.5 KiB
TypeScript
import { Fixtures } from '~test/fixtures.ts';
|
|
import { extractPackageFile } from './index.ts';
|
|
|
|
describe('modules/manager/swift/index', () => {
|
|
describe('extractPackageFile()', () => {
|
|
it('returns null for empty content', () => {
|
|
expect(extractPackageFile(``)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:["foobar"]`)).toBeNull();
|
|
});
|
|
|
|
it('returns null for invalid content', () => {
|
|
expect(extractPackageFile(`dependen`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies!: `)).toBeNull();
|
|
expect(extractPackageFile(`dependencies :`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies...`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:!`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[...`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package.package(`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(asdf`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(.package(`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(url],`)).toBeNull();
|
|
expect(
|
|
extractPackageFile(`dependencies:[.package(url.package(]`),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(`dependencies:[.package(url:.package(`),
|
|
).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(url:]`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(url:"fo`)).toBeNull();
|
|
expect(extractPackageFile(`dependencies:[.package(url:"fo]`)).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://example.com/something.git"]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git"]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git".package(]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", ]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", .package(]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", .exact(]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", exact:]`,
|
|
),
|
|
).toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", exact:.package()]`,
|
|
),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('parses packages with invalid versions', () => {
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", from]`,
|
|
),
|
|
).not.toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", from.package(`,
|
|
),
|
|
).not.toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", from:]`,
|
|
),
|
|
).not.toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git", from:.package(`,
|
|
),
|
|
).not.toBeNull();
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3")]`,
|
|
),
|
|
).not.toBeNull();
|
|
});
|
|
|
|
it('parses package descriptions', () => {
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",from:"1.2.3")]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: 'from:"1.2.3"' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"...)]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '"1.2.3"...' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"..."1.2.4")]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '"1.2.3"..."1.2.4"' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"..<"1.2.4")]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '"1.2.3"..<"1.2.4"' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",..."1.2.3")]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '..."1.2.3"' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",..<"1.2.3")]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '..<"1.2.3"' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",.exact("1.2.3"))]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '1.2.3' }] });
|
|
expect(
|
|
extractPackageFile(
|
|
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",exact:"1.2.3"))]`,
|
|
),
|
|
).toMatchObject({ deps: [{ currentValue: '1.2.3' }] });
|
|
});
|
|
|
|
it('parses multiple packages', () => {
|
|
expect(extractPackageFile(Fixtures.get(`SamplePackage.swift`))).toEqual({
|
|
deps: [
|
|
{
|
|
currentValue: '"master"\n ',
|
|
datasource: 'github-tags',
|
|
depName: '0x7fs/CountedSet',
|
|
},
|
|
{
|
|
currentValue: 'from: "1.2.3"',
|
|
datasource: 'github-tags',
|
|
depName: 'foo/bar',
|
|
},
|
|
{
|
|
currentValue: '0.1.0',
|
|
datasource: 'github-tags',
|
|
depName: 'avito-tech/GraphiteClient',
|
|
},
|
|
{
|
|
currentValue: '1.0.16',
|
|
datasource: 'github-tags',
|
|
depName: 'IBM-Swift/BlueSignals',
|
|
},
|
|
{
|
|
currentValue: '1.2.1',
|
|
datasource: 'github-tags',
|
|
depName: 'apple/swift-argument-parser',
|
|
},
|
|
{
|
|
currentValue: '"UpdateSocket"\n ',
|
|
datasource: 'github-tags',
|
|
depName: 'beefon/Shout',
|
|
},
|
|
{
|
|
currentValue: '3.0.6',
|
|
datasource: 'github-tags',
|
|
depName: 'daltoniam/Starscream',
|
|
},
|
|
{
|
|
currentValue: '1.4.6',
|
|
datasource: 'github-tags',
|
|
depName: 'httpswift/swifter',
|
|
},
|
|
{
|
|
currentValue: 'from : "0.9.6"',
|
|
datasource: 'github-tags',
|
|
depName: 'weichsel/ZIPFoundation',
|
|
},
|
|
{
|
|
currentValue: '"swift-5.0-branch"\n ',
|
|
datasource: 'github-tags',
|
|
depName: 'apple/swift-package-manager',
|
|
},
|
|
],
|
|
});
|
|
});
|
|
});
|
|
});
|