Select Git revision
docker-entrypoint.sh
merge.spec.ts 9.75 KiB
import {
RenovateConfig,
fs,
getConfig,
git,
logger,
mocked,
partial,
platform,
} from '../../../../test/util';
import * as _migrateAndValidate from '../../../config/migrate-validate';
import * as _migrate from '../../../config/migration';
import * as repoCache from '../../../util/cache/repository';
import { initRepoCache } from '../../../util/cache/repository/init';
import type { RepoCacheData } from '../../../util/cache/repository/types';
import {
checkForRepoConfigError,
detectRepoFileConfig,
mergeRenovateConfig,
} from './merge';
jest.mock('../../../util/fs');
jest.mock('../../../util/git');
const migrate = mocked(_migrate);
const migrateAndValidate = mocked(_migrateAndValidate);
let config: RenovateConfig;
beforeEach(() => {
jest.resetAllMocks();
config = getConfig();
config.errors = [];
config.warnings = [];
});
jest.mock('../../../config/migration');
jest.mock('../../../config/migrate-validate');
describe('workers/repository/init/merge', () => {
describe('detectRepoFileConfig()', () => {
beforeEach(async () => {
await initRepoCache({ repoFingerprint: '0123456789abcdef' });
});
it('returns config if not found', async () => {
git.getFileList.mockResolvedValue(['package.json']);
fs.readLocalFile.mockResolvedValue('{}');
expect(await detectRepoFileConfig()).toEqual({});
});
it('returns config if not found - uses cache', async () => {
jest
.spyOn(repoCache, 'getCache')
.mockReturnValueOnce(
partial<RepoCacheData>({ configFileName: 'renovate.json' })
);
platform.getRawFile.mockRejectedValueOnce(new Error());
git.getFileList.mockResolvedValue(['package.json']);
fs.readLocalFile.mockResolvedValue('{}');
expect(await detectRepoFileConfig()).toEqual({});
expect(logger.logger.debug).toHaveBeenCalledWith(
'Existing config file no longer exists'
);
});
it('uses package.json config if found', async () => {
git.getFileList.mockResolvedValue(['package.json']);
const pJson = JSON.stringify({
name: 'something',