Select Git revision
index.spec.ts
index.spec.ts 5.11 KiB
import { getName, loadFixture } from '../../../test/util';
import { extractPackageFile } from './extract';
const pkgContent = loadFixture(__filename, `SamplePackage.swift`);
describe(getName(__filename), () => {
describe('extractPackageFile()', () => {
it('returns null for empty content', () => {
expect(extractPackageFile(null)).toBeNull();
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();
});
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")]`
)
).toMatchSnapshot();
expect(
extractPackageFile(
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"...)]`
)
).toMatchSnapshot();
expect(
extractPackageFile(
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"..."1.2.4")]`
)
).toMatchSnapshot();
expect(
extractPackageFile(
`dependencies:[.package(url:"https://github.com/vapor/vapor.git","1.2.3"..<"1.2.4")]`
)
).toMatchSnapshot();
expect(
extractPackageFile(
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",..."1.2.3")]`
)
).toMatchSnapshot();
expect(
extractPackageFile(
`dependencies:[.package(url:"https://github.com/vapor/vapor.git",..<"1.2.3")]`
)
).toMatchSnapshot();
});
it('parses multiple packages', () => {
expect(extractPackageFile(pkgContent)).toMatchSnapshot();
});
});
});