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
113 lines
3.2 KiB
TypeScript
113 lines
3.2 KiB
TypeScript
import { codeBlock } from 'common-tags';
|
|
import { Fixtures } from '~test/fixtures.ts';
|
|
import { extractPackageFile } from './index.ts';
|
|
|
|
const jsonnetfile = Fixtures.get('jsonnetfile.json');
|
|
const jsonnetfileWithName = Fixtures.get('jsonnetfile-with-name.json');
|
|
const jsonnetfileEmptyGitSource = JSON.stringify({
|
|
version: 1,
|
|
dependencies: [
|
|
{
|
|
source: { git: {} },
|
|
version: 'v0.50.0',
|
|
},
|
|
],
|
|
});
|
|
|
|
describe('modules/manager/jsonnet-bundler/extract', () => {
|
|
describe('extractPackageFile()', () => {
|
|
it('returns null for invalid jsonnetfile', () => {
|
|
expect(
|
|
extractPackageFile('this is not a jsonnetfile', 'jsonnetfile.json'),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('returns null for jsonnetfile with no dependencies', () => {
|
|
const jsonnetfileNoDependencies = codeBlock`
|
|
{
|
|
"version": 1,
|
|
"dependencies": [],
|
|
"legacyImports": true
|
|
}
|
|
`;
|
|
expect(
|
|
extractPackageFile(jsonnetfileNoDependencies, 'jsonnetfile.json'),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('returns null for local dependencies', () => {
|
|
const jsonnetfileLocalDependencies = codeBlock`
|
|
{
|
|
"version": 1,
|
|
"dependencies": [
|
|
{
|
|
"source": {
|
|
"local": {
|
|
"directory": "jsonnet"
|
|
}
|
|
},
|
|
"version": ""
|
|
}
|
|
],
|
|
"legacyImports": true
|
|
}
|
|
`;
|
|
expect(
|
|
extractPackageFile(jsonnetfileLocalDependencies, 'jsonnetfile.json'),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('returns null for vendored dependencies', () => {
|
|
expect(
|
|
extractPackageFile(jsonnetfile, 'vendor/jsonnetfile.json'),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('returns null for dependencies with empty Git source', () => {
|
|
expect(
|
|
extractPackageFile(
|
|
jsonnetfileEmptyGitSource,
|
|
'jsonnetfile-empty-git-source.json',
|
|
),
|
|
).toBeNull();
|
|
});
|
|
|
|
it('extracts dependency', () => {
|
|
const res = extractPackageFile(jsonnetfile, 'jsonnetfile.json');
|
|
expect(res).toMatchObject({
|
|
deps: [
|
|
{
|
|
currentValue: 'v0.50.0',
|
|
depName:
|
|
'github.com/prometheus-operator/prometheus-operator/jsonnet/prometheus-operator',
|
|
packageName:
|
|
'https://github.com/prometheus-operator/prometheus-operator.git',
|
|
},
|
|
{
|
|
currentValue: 'v0.9.0',
|
|
depName:
|
|
'github.com/prometheus-operator/kube-prometheus/jsonnet/kube-prometheus',
|
|
packageName:
|
|
'ssh://git@github.com/prometheus-operator/kube-prometheus.git',
|
|
},
|
|
],
|
|
});
|
|
});
|
|
|
|
it('extracts dependency with custom name', () => {
|
|
const res = extractPackageFile(jsonnetfileWithName, 'jsonnetfile.json');
|
|
expect(res).toMatchObject({
|
|
deps: [
|
|
{
|
|
currentValue: 'v0.50.0',
|
|
depName:
|
|
'github.com/prometheus-operator/prometheus-operator/jsonnet/mixin',
|
|
packageName:
|
|
'https://github.com/prometheus-operator/prometheus-operator',
|
|
},
|
|
],
|
|
});
|
|
});
|
|
});
|
|
});
|