Select Git revision
index.spec.ts
index.spec.ts 11.13 KiB
import { parseArchiveUrl } from './http';
import { extractDepsFromFragmentData } from '.';
describe('modules/manager/bazel/rules/index', () => {
it('parses archiveUrl', () => {
expect(parseArchiveUrl('')).toBeNull();
expect(parseArchiveUrl(null)).toBeNull();
expect(parseArchiveUrl(null)).toBeNull();
expect(parseArchiveUrl('https://example.com/')).toBeNull();
expect(parseArchiveUrl('https://github.com/foo/bar')).toBeNull();
// Archive of a commit.
expect(
parseArchiveUrl(
'https://github.com/foo/bar/archive/abcdef0123abcdef0123abcdef0123abcdef0123.tar.gz'
)
).toEqual({
datasource: 'github-tags',
packageName: 'foo/bar',
currentDigest: 'abcdef0123abcdef0123abcdef0123abcdef0123',
});
// Archive of a release
expect(
parseArchiveUrl(
'https://github.com/foo/bar/releases/download/1.2.3/foobar-1.2.3.tar.gz'
)
).toEqual({
datasource: 'github-releases',
packageName: 'foo/bar',
currentValue: '1.2.3',
});
// Archive of a tag.
expect(
parseArchiveUrl(
'https://github.com/aspect-build/rules_js/archive/refs/tags/v1.1.2.tar.gz'
)
).toEqual({
datasource: 'github-tags',
packageName: 'aspect-build/rules_js',
currentValue: 'v1.1.2',
});
});
describe('git', () => {
it('extracts git dependencies', () => {
expect(
extractDepsFromFragmentData({ rule: 'foo_bar', name: 'foo_bar' })
).toBeEmptyArray();
expect(
extractDepsFromFragmentData({ rule: 'git_repository', name: 'foo_bar' })
).toBeEmptyArray();
expect(
extractDepsFromFragmentData({
rule: 'git_repository',
name: 'foo_bar',
tag: '1.2.3',
})
).toBeEmptyArray();
expect(
extractDepsFromFragmentData({
rule: 'git_repository',
name: 'foo_bar',
tag: '1.2.3',
remote: 'https://github.com/foo/bar',
})