Files
renovate/lib/workers/repository/reconfigure/utils.spec.ts
2026-02-06 13:40:01 +00:00

72 lines
2.3 KiB
TypeScript

import { fs, logger } from '~test/util.ts';
import * as _merge from '../init/merge.ts';
import { getReconfigureBranchName, getReconfigureConfig } from './utils.ts';
vi.mock('../../../util/fs/index.ts');
vi.mock('../init/merge.ts');
const merge = vi.mocked(_merge);
const reconfigureBranch = 'renovate/reconfigure';
describe('workers/repository/reconfigure/utils', () => {
describe('getReconfigureConfig()', () => {
beforeEach(() => {
merge.detectConfigFile.mockResolvedValue('renovate.json');
});
it('no config file found', async () => {
merge.detectConfigFile.mockResolvedValue(null);
const res = await getReconfigureConfig(reconfigureBranch);
expect(res).toMatchObject({
ok: false,
errMessage: 'Validation Failed - No config file found',
});
});
it('handles error while reading reconfigure config file', async () => {
fs.readLocalFile.mockResolvedValue(null);
const res = await getReconfigureConfig(reconfigureBranch);
expect(res).toMatchObject({
ok: false,
errMessage: 'Validation Failed - Invalid config file',
configFileName: 'renovate.json',
});
});
it('handles invalid reconfigure config', async () => {
fs.readLocalFile.mockResolvedValue('{');
const res = await getReconfigureConfig(reconfigureBranch);
expect(res).toMatchObject({
ok: false,
errMessage: 'Validation Failed - Unparsable config file',
configFileName: 'renovate.json',
});
expect(logger.logger.debug).toHaveBeenCalledWith(
{ err: expect.any(Object) },
'Error while parsing config file',
);
});
it('return config', async () => {
merge.detectConfigFile.mockResolvedValue('package.json'); // using package.json for coverage
fs.readLocalFile.mockResolvedValue('{renovate: {}}');
const res = await getReconfigureConfig(reconfigureBranch);
expect(res).toMatchObject({
ok: true,
config: {},
configFileName: 'package.json',
});
});
});
describe('getReconfigureBranchName()', () => {
it('returns reconfigure branch name', () => {
expect(getReconfigureBranchName('renovate/')).toBe(
'renovate/reconfigure',
);
expect(getReconfigureBranchName('prefix/')).toBe('prefix/reconfigure');
});
});
});