Skip to content
Snippets Groups Projects
Unverified Commit 14fd37f9 authored by Tobias Schlatter's avatar Tobias Schlatter Committed by GitHub
Browse files

test(bazel-module): do not rely on fragments to test rules (#34298)

parent 9e02ab69
No related branches found
No related tags found
No related merge requests found
import { codeBlock } from 'common-tags';
import deepmerge from 'deepmerge'; import deepmerge from 'deepmerge';
import { BazelDatasource } from '../../datasource/bazel'; import { BazelDatasource } from '../../datasource/bazel';
import { GithubTagsDatasource } from '../../datasource/github-tags'; import { GithubTagsDatasource } from '../../datasource/github-tags';
import type { PackageDependency } from '../types'; import type { PackageDependency } from '../types';
import * as fragments from './parser/fragments'; import { parse } from './parser';
import type { import type {
BasePackageDep, BasePackageDep,
BazelModulePackageDep, BazelModulePackageDep,
...@@ -96,43 +97,50 @@ const gitRepositoryForUnsupportedPkgDep: BasePackageDep = { ...@@ -96,43 +97,50 @@ const gitRepositoryForUnsupportedPkgDep: BasePackageDep = {
describe('modules/manager/bazel-module/rules', () => { describe('modules/manager/bazel-module/rules', () => {
describe('RuleToBazelModulePackageDep', () => { describe('RuleToBazelModulePackageDep', () => {
const bazelDepWithoutDevDep = fragments.rule('bazel_dep', { const bazelDepWithoutDevDep = codeBlock`
name: fragments.string('rules_foo'), bazel_dep(name = "rules_foo", version = "1.2.3")`;
version: fragments.string('1.2.3'),
}); const bazelDepWithoutDevDepNoVersion = codeBlock`
const bazelDepWithoutDevDepNoVersion = fragments.rule('bazel_dep', { bazel_dep(name = "rules_foo")`;
name: fragments.string('rules_foo'),
}); const gitOverrideWithGihubHost = codeBlock`
const gitOverrideWithGihubHost = fragments.rule('git_override', { git_override(
module_name: fragments.string('rules_foo'), module_name = "rules_foo",
remote: fragments.string('https://github.com/example/rules_foo.git'), remote = "https://github.com/example/rules_foo.git",
commit: fragments.string('850cb49c8649e463b80ef7984e7c744279746170'), commit = "850cb49c8649e463b80ef7984e7c744279746170",
}); )`;
const gitOverrideWithUnsupportedHost = fragments.rule('git_override', {
module_name: fragments.string('rules_foo'), const gitOverrideWithUnsupportedHost = codeBlock`
remote: fragments.string('https://nobuenos.com/example/rules_foo.git'), git_override(
commit: fragments.string('850cb49c8649e463b80ef7984e7c744279746170'), module_name = "rules_foo",
}); remote = "https://nobuenos.com/example/rules_foo.git",
const archiveOverride = fragments.rule('archive_override', { commit = "850cb49c8649e463b80ef7984e7c744279746170",
module_name: fragments.string('rules_foo'), )`;
urls: fragments.string('https://example.com/rules_foo.tar.gz'),
}); const archiveOverride = codeBlock`
const localPathOverride = fragments.rule('local_path_override', { archive_override(
module_name: fragments.string('rules_foo'), module_name = "rules_foo",
path: fragments.string('/path/to/module'), urls = "https://example.com/rules_foo.tar.gz",
}); )`;
const singleVersionOverride = fragments.rule('single_version_override', {
module_name: fragments.string('rules_foo'), const localPathOverride = codeBlock`
version: fragments.string('1.2.3'), local_path_override(
registry: fragments.string(customRegistryUrl), module_name = "rules_foo",
}); path = "/path/to/module",
const singleVersionOverrideWithRegistry = fragments.rule( )`;
'single_version_override',
{ const singleVersionOverride = codeBlock`
module_name: fragments.string('rules_foo'), single_version_override(
registry: fragments.string(customRegistryUrl), module_name = "rules_foo",
}, version = "1.2.3",
); registry = "${customRegistryUrl}",
)`;
const singleVersionOverrideWithRegistry = codeBlock`
single_version_override(
module_name = "rules_foo",
registry = "${customRegistryUrl}",
)`;
it.each` it.each`
msg | a | exp msg | a | exp
...@@ -145,29 +153,32 @@ describe('modules/manager/bazel-module/rules', () => { ...@@ -145,29 +153,32 @@ describe('modules/manager/bazel-module/rules', () => {
${'single_version_override with version and registry'} | ${singleVersionOverride} | ${singleVersionOverridePkgDep} ${'single_version_override with version and registry'} | ${singleVersionOverride} | ${singleVersionOverridePkgDep}
${'single_version_override with registry'} | ${singleVersionOverrideWithRegistry} | ${singleVersionOverrideWithRegistryPkgDep} ${'single_version_override with registry'} | ${singleVersionOverrideWithRegistry} | ${singleVersionOverrideWithRegistryPkgDep}
`('.parse() with $msg', ({ a, exp }) => { `('.parse() with $msg', ({ a, exp }) => {
const pkgDep = RuleToBazelModulePackageDep.parse(a); const pkgDep = RuleToBazelModulePackageDep.parse(parse(a)[0]);
expect(pkgDep).toEqual(exp); expect(pkgDep).toEqual(exp);
}); });
}); });
describe('GitRepositoryToPackageDep', () => { describe('GitRepositoryToPackageDep', () => {
const gitRepositoryWithGihubHost = fragments.rule('git_repository', { const gitRepositoryWithGihubHost = codeBlock`
name: fragments.string('rules_foo'), git_repository(
remote: fragments.string('https://github.com/example/rules_foo.git'), name = "rules_foo",
commit: fragments.string('850cb49c8649e463b80ef7984e7c744279746170'), remote = "https://github.com/example/rules_foo.git",
}); commit = "850cb49c8649e463b80ef7984e7c744279746170",
const gitRepositoryWithUnsupportedHost = fragments.rule('git_repository', { )`;
name: fragments.string('rules_foo'),
remote: fragments.string('https://nobuenos.com/example/rules_foo.git'), const gitRepositoryWithUnsupportedHost = codeBlock`
commit: fragments.string('850cb49c8649e463b80ef7984e7c744279746170'), git_repository(
}); name = "rules_foo",
remote = "https://nobuenos.com/example/rules_foo.git",
commit = "850cb49c8649e463b80ef7984e7c744279746170",
)`;
it.each` it.each`
msg | a | exp msg | a | exp
${'git_repository, GitHub host'} | ${gitRepositoryWithGihubHost} | ${gitRepositoryForGithubPkgDep} ${'git_repository, GitHub host'} | ${gitRepositoryWithGihubHost} | ${gitRepositoryForGithubPkgDep}
${'git_repository, unsupported host'} | ${gitRepositoryWithUnsupportedHost} | ${gitRepositoryForUnsupportedPkgDep} ${'git_repository, unsupported host'} | ${gitRepositoryWithUnsupportedHost} | ${gitRepositoryForUnsupportedPkgDep}
`('.parse() with $msg', ({ a, exp }) => { `('.parse() with $msg', ({ a, exp }) => {
const pkgDep = GitRepositoryToPackageDep.parse(a); const pkgDep = GitRepositoryToPackageDep.parse(parse(a)[0]);
expect(pkgDep).toEqual(exp); expect(pkgDep).toEqual(exp);
}); });
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment