Files
renovate/lib/modules/manager/jsonnet-bundler/extract.spec.ts
Sebastian Poxhofer 2fc46bdcfa test(manager): replace file snapshots with explicit assertions (#45656)
* 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
2026-09-04 06:36:39 +00:00

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',
},
],
});
});
});
});