Files
renovate/lib/modules/datasource/java-version/common.spec.ts
T
2026-02-06 13:40:01 +00:00

89 lines
2.2 KiB
TypeScript

import { logger } from '~test/util.ts';
import { parsePackage } from './common.ts';
import type { PackageConfig } from './types.ts';
describe('modules/datasource/java-version/common', () => {
const archMock = vi.spyOn(process, 'arch', 'get');
const osMock = vi.spyOn(process, 'platform', 'get');
describe('parsePackage', () => {
it('no os and architecture', () => {
expect(parsePackage('java-jre')).toEqual({
imageType: 'jre',
os: null,
architecture: null,
});
expect(logger.logger.warn).not.toBeCalled();
});
describe('uses system jdk', () => {
const input = 'java?system=true';
it.each<[NodeJS.Architecture, NodeJS.Platform, PackageConfig]>([
[
'ia32',
'win32',
{
imageType: 'jdk',
os: 'windows',
architecture: 'x86',
},
],
[
'x64',
'win32',
{
imageType: 'jdk',
os: 'windows',
architecture: 'x64',
},
],
[
'arm64',
'darwin',
{
imageType: 'jdk',
os: 'mac',
architecture: 'aarch64',
},
],
[
'arm',
'aix',
{
imageType: 'jdk',
os: 'aix',
architecture: 'arm',
},
],
[
'riscv64',
'linux',
{
imageType: 'jdk',
os: 'linux',
architecture: 'riscv64',
},
],
])('system jdk -> (%s, %s, %s) => %o', (arch, os, expected) => {
archMock.mockReturnValue(arch);
osMock.mockReturnValue(os);
expect(parsePackage(input)).toEqual(expected);
});
it('logs for unsupported os and architecture', () => {
// @ts-expect-error - test unsupported
archMock.mockReturnValue('unsupported');
// @ts-expect-error - test unsupported
osMock.mockReturnValue('unsupported');
expect(parsePackage(input)).toEqual({
imageType: 'jdk',
os: null,
architecture: null,
});
expect(logger.logger.warn).toBeCalledTimes(2);
});
});
});
});