refactor: move branch cache files to util/cache (#18646)

This commit is contained in:
RahulGautamSingh 2022-10-29 12:59:51 +05:30 committed by GitHub
parent a9922f5c2f
commit f04a7c75ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
15 changed files with 79 additions and 84 deletions

View file

@ -1,15 +1,15 @@
import { logger, mocked, partial } from '../../../test/util'; import { logger, mocked, partial } from '../../../../test/util';
import * as _repositoryCache from '../cache/repository'; import * as _repositoryCache from '../repository';
import type { BranchCache, RepoCacheData } from '../cache/repository/types'; import type { BranchCache, RepoCacheData } from '../repository/types';
import { import {
getCachedBehindBaseResult, getCachedBehindBaseResult,
setCachedBehindBaseResult, setCachedBehindBaseResult,
} from './behind-base-branch-cache'; } from './behind-base-branch';
jest.mock('../cache/repository'); jest.mock('../repository');
const repositoryCache = mocked(_repositoryCache); const repositoryCache = mocked(_repositoryCache);
describe('util/git/behind-base-branch-cache', () => { describe('util/cache/branch/behind-base-branch', () => {
let repoCache: RepoCacheData = {}; let repoCache: RepoCacheData = {};
beforeEach(() => { beforeEach(() => {

View file

@ -1,5 +1,5 @@
import { logger } from '../../logger'; import { logger } from '../../../logger';
import { getCache } from '../cache/repository'; import { getCache } from '../repository';
export function getCachedBehindBaseResult( export function getCachedBehindBaseResult(
branchName: string, branchName: string,

View file

@ -1,15 +1,12 @@
import { mocked, partial } from '../../../test/util'; import { mocked, partial } from '../../../../test/util';
import * as _repositoryCache from '../cache/repository'; import * as _repositoryCache from '../repository';
import type { BranchCache, RepoCacheData } from '../cache/repository/types'; import type { BranchCache, RepoCacheData } from '../repository/types';
import { import { getCachedConflictResult, setCachedConflictResult } from './conflict';
getCachedConflictResult,
setCachedConflictResult,
} from './conflicts-cache';
jest.mock('../cache/repository'); jest.mock('../repository');
const repositoryCache = mocked(_repositoryCache); const repositoryCache = mocked(_repositoryCache);
describe('util/git/conflicts-cache', () => { describe('util/cache/branch/conflict', () => {
let repoCache: RepoCacheData = {}; let repoCache: RepoCacheData = {};
beforeEach(() => { beforeEach(() => {

View file

@ -1,5 +1,5 @@
import { logger } from '../../logger'; import { logger } from '../../../logger';
import { getCache } from '../cache/repository'; import { getCache } from '../repository';
export function getCachedConflictResult( export function getCachedConflictResult(
branchName: string, branchName: string,

11
lib/util/cache/branch/index.ts vendored Normal file
View file

@ -0,0 +1,11 @@
export {
deleteCachedBranchParentShaResult,
getCachedBranchParentShaResult,
} from './parent-sha';
export { setBranchNewCommit } from './set-branch-commit';
export {
getCachedBehindBaseResult,
setCachedBehindBaseResult,
} from './behind-base-branch';
export { getCachedConflictResult, setCachedConflictResult } from './conflict';
export { getCachedModifiedResult, setCachedModifiedResult } from './modified';

View file

@ -1,15 +1,12 @@
import { logger, mocked, partial } from '../../../test/util'; import { logger, mocked, partial } from '../../../../test/util';
import * as _repositoryCache from '../cache/repository'; import * as _repositoryCache from '../repository';
import type { BranchCache, RepoCacheData } from '../cache/repository/types'; import type { BranchCache, RepoCacheData } from '../repository/types';
import { import { getCachedModifiedResult, setCachedModifiedResult } from './modified';
getCachedModifiedResult,
setCachedModifiedResult,
} from './modified-cache';
jest.mock('../cache/repository'); jest.mock('../repository');
const repositoryCache = mocked(_repositoryCache); const repositoryCache = mocked(_repositoryCache);
describe('util/git/modified-cache', () => { describe('util/cache/branch/modified', () => {
let repoCache: RepoCacheData = {}; let repoCache: RepoCacheData = {};
beforeEach(() => { beforeEach(() => {

View file

@ -1,5 +1,5 @@
import { logger } from '../../logger'; import { logger } from '../../../logger';
import { getCache } from '../cache/repository'; import { getCache } from '../repository';
export function getCachedModifiedResult( export function getCachedModifiedResult(
branchName: string, branchName: string,

View file

@ -1,15 +1,15 @@
import { mocked } from '../../../test/util'; import { mocked } from '../../../../test/util';
import * as _repositoryCache from '../cache/repository'; import * as _repositoryCache from '../repository';
import type { BranchCache, RepoCacheData } from '../cache/repository/types'; import type { BranchCache, RepoCacheData } from '../repository/types';
import { import {
deleteCachedBranchParentShaResult, deleteCachedBranchParentShaResult,
getCachedBranchParentShaResult, getCachedBranchParentShaResult,
} from './parent-sha-cache'; } from './parent-sha';
jest.mock('../cache/repository'); jest.mock('../repository');
const repositoryCache = mocked(_repositoryCache); const repositoryCache = mocked(_repositoryCache);
describe('util/git/parent-sha-cache', () => { describe('util/cache/branch/parent-sha', () => {
let repoCache: RepoCacheData = {}; let repoCache: RepoCacheData = {};
beforeEach(() => { beforeEach(() => {

View file

@ -1,4 +1,4 @@
import { getCache } from '../cache/repository'; import { getCache } from '../repository';
export function getCachedBranchParentShaResult( export function getCachedBranchParentShaResult(
branchName: string, branchName: string,

View file

@ -1,13 +1,13 @@
import { git, logger, mocked, partial } from '../../../test/util'; import { git, logger, mocked, partial } from '../../../../test/util';
import * as _repositoryCache from '../cache/repository'; import * as _repositoryCache from '../repository';
import type { BranchCache, RepoCacheData } from '../cache/repository/types'; import type { BranchCache, RepoCacheData } from '../repository/types';
import { setBranchNewCommit } from './set-branch-commit'; import { setBranchNewCommit } from './set-branch-commit';
jest.mock('../cache/repository'); jest.mock('../repository');
jest.mock('.'); jest.mock('../../git');
const repositoryCache = mocked(_repositoryCache); const repositoryCache = mocked(_repositoryCache);
describe('util/git/set-branch-commit', () => { describe('util/cache/branch/set-branch-commit', () => {
let repoCache: RepoCacheData = {}; let repoCache: RepoCacheData = {};
beforeEach(() => { beforeEach(() => {

View file

@ -1,7 +1,7 @@
import { logger } from '../../logger'; import { logger } from '../../../logger';
import { getCache } from '../cache/repository'; import { getBranchCommit } from '../../git';
import type { BranchCache } from '../cache/repository/types'; import { getCache } from '../repository';
import { getBranchCommit } from '.'; import type { BranchCache } from '../repository/types';
/** /**
* Called when a new commit is added to branch * Called when a new commit is added to branch

View file

@ -7,25 +7,17 @@ import {
CONFIG_VALIDATION, CONFIG_VALIDATION,
INVALID_PATH, INVALID_PATH,
} from '../../constants/error-messages'; } from '../../constants/error-messages';
import * as _branchCache from '../cache/branch';
import { newlineRegex, regEx } from '../regex'; import { newlineRegex, regEx } from '../regex';
import * as _behindBaseCache from './behind-base-branch-cache';
import * as _conflictsCache from './conflicts-cache';
import * as _modifiedCache from './modified-cache';
import * as _parentShaCache from './parent-sha-cache';
import type { FileChange } from './types'; import type { FileChange } from './types';
import * as git from '.'; import * as git from '.';
import { setNoVerify } from '.'; import { setNoVerify } from '.';
jest.mock('./conflicts-cache'); jest.mock('../cache/branch');
jest.mock('./behind-base-branch-cache');
jest.mock('./modified-cache');
jest.mock('./parent-sha-cache');
jest.mock('delay'); jest.mock('delay');
jest.mock('../cache/repository'); jest.mock('../cache/repository');
const behindBaseCache = mocked(_behindBaseCache); const branchCache = mocked(_branchCache);
const conflictsCache = mocked(_conflictsCache);
const modifiedCache = mocked(_modifiedCache);
const parentShaCache = mocked(_parentShaCache);
// Class is no longer exported // Class is no longer exported
const SimpleGit = Git().constructor as { prototype: ReturnType<typeof Git> }; const SimpleGit = Git().constructor as { prototype: ReturnType<typeof Git> };
@ -116,8 +108,8 @@ describe('util/git/index', () => {
// override some local git settings for better testing // override some local git settings for better testing
const local = Git(tmpDir.path); const local = Git(tmpDir.path);
await local.addConfig('commit.gpgsign', 'false'); await local.addConfig('commit.gpgsign', 'false');
parentShaCache.getCachedBranchParentShaResult.mockReturnValue(null); branchCache.getCachedBranchParentShaResult.mockReturnValue(null);
behindBaseCache.getCachedBehindBaseResult.mockReturnValue(null); branchCache.getCachedBehindBaseResult.mockReturnValue(null);
}); });
afterEach(async () => { afterEach(async () => {
@ -264,7 +256,7 @@ describe('util/git/index', () => {
}); });
it('returns cached value', async () => { it('returns cached value', async () => {
behindBaseCache.getCachedBehindBaseResult.mockReturnValue(true); branchCache.getCachedBehindBaseResult.mockReturnValue(true);
expect(await git.isBranchBehindBase('develop', defaultBranch)).toBeTrue(); expect(await git.isBranchBehindBase('develop', defaultBranch)).toBeTrue();
expect(logger.logger.debug).toHaveBeenCalledWith( expect(logger.logger.debug).toHaveBeenCalledWith(
'branch.isBehindBase(): using cached result "true"' 'branch.isBehindBase(): using cached result "true"'
@ -274,7 +266,7 @@ describe('util/git/index', () => {
describe('isBranchModified()', () => { describe('isBranchModified()', () => {
beforeEach(() => { beforeEach(() => {
modifiedCache.getCachedModifiedResult.mockReturnValue(null); branchCache.getCachedModifiedResult.mockReturnValue(null);
}); });
it('should return false when branch is not found', async () => { it('should return false when branch is not found', async () => {
@ -298,7 +290,7 @@ describe('util/git/index', () => {
}); });
it('should return value stored in modifiedCacheResult', async () => { it('should return value stored in modifiedCacheResult', async () => {
modifiedCache.getCachedModifiedResult.mockReturnValue(true); branchCache.getCachedModifiedResult.mockReturnValue(true);
expect(await git.isBranchModified('renovate/future_branch')).toBeTrue(); expect(await git.isBranchModified('renovate/future_branch')).toBeTrue();
}); });
}); });
@ -805,7 +797,7 @@ describe('util/git/index', () => {
await repo.checkout(defaultBranch); await repo.checkout(defaultBranch);
conflictsCache.getCachedConflictResult.mockReturnValue(null); branchCache.getCachedConflictResult.mockReturnValue(null);
}); });
it('returns true for non-existing source branch', async () => { it('returns true for non-existing source branch', async () => {
@ -862,7 +854,7 @@ describe('util/git/index', () => {
}); });
it('returns cached values', async () => { it('returns cached values', async () => {
conflictsCache.getCachedConflictResult.mockReturnValue(true); branchCache.getCachedConflictResult.mockReturnValue(true);
const res = await git.isBranchConflicted( const res = await git.isBranchConflicted(
defaultBranch, defaultBranch,
@ -870,7 +862,7 @@ describe('util/git/index', () => {
); );
expect(res).toBeTrue(); expect(res).toBeTrue();
expect(conflictsCache.getCachedConflictResult.mock.calls).toEqual([ expect(branchCache.getCachedConflictResult.mock.calls).toEqual([
[ [
'renovate/conflicted_branch', 'renovate/conflicted_branch',
git.getBranchCommit('renovate/conflicted_branch'), git.getBranchCommit('renovate/conflicted_branch'),
@ -878,11 +870,11 @@ describe('util/git/index', () => {
git.getBranchCommit(defaultBranch), git.getBranchCommit(defaultBranch),
], ],
]); ]);
expect(conflictsCache.setCachedConflictResult).not.toHaveBeenCalled(); expect(branchCache.setCachedConflictResult).not.toHaveBeenCalled();
}); });
it('caches truthy return value', async () => { it('caches truthy return value', async () => {
conflictsCache.getCachedConflictResult.mockReturnValue(null); branchCache.getCachedConflictResult.mockReturnValue(null);
const res = await git.isBranchConflicted( const res = await git.isBranchConflicted(
defaultBranch, defaultBranch,
@ -890,13 +882,13 @@ describe('util/git/index', () => {
); );
expect(res).toBeTrue(); expect(res).toBeTrue();
expect(conflictsCache.setCachedConflictResult.mock.calls).toEqual([ expect(branchCache.setCachedConflictResult.mock.calls).toEqual([
['renovate/conflicted_branch', true], ['renovate/conflicted_branch', true],
]); ]);
}); });
it('caches falsy return value', async () => { it('caches falsy return value', async () => {
conflictsCache.getCachedConflictResult.mockReturnValue(null); branchCache.getCachedConflictResult.mockReturnValue(null);
const res = await git.isBranchConflicted( const res = await git.isBranchConflicted(
defaultBranch, defaultBranch,
@ -904,7 +896,7 @@ describe('util/git/index', () => {
); );
expect(res).toBeFalse(); expect(res).toBeFalse();
expect(conflictsCache.setCachedConflictResult.mock.calls).toEqual([ expect(branchCache.setCachedConflictResult.mock.calls).toEqual([
['renovate/non_conflicted_branch', false], ['renovate/non_conflicted_branch', false],
]); ]);
}); });

View file

@ -28,24 +28,22 @@ import { api as semverCoerced } from '../../modules/versioning/semver-coerced';
import { ExternalHostError } from '../../types/errors/external-host-error'; import { ExternalHostError } from '../../types/errors/external-host-error';
import type { GitProtocol } from '../../types/git'; import type { GitProtocol } from '../../types/git';
import { Limit, incLimitedValue } from '../../workers/global/limits'; import { Limit, incLimitedValue } from '../../workers/global/limits';
import {
deleteCachedBranchParentShaResult,
getCachedBehindBaseResult,
getCachedConflictResult,
getCachedModifiedResult,
setCachedConflictResult,
setCachedModifiedResult,
} from '../cache/branch';
import { newlineRegex, regEx } from '../regex'; import { newlineRegex, regEx } from '../regex';
import { parseGitAuthor } from './author'; import { parseGitAuthor } from './author';
import { getCachedBehindBaseResult } from './behind-base-branch-cache';
import { getNoVerify, simpleGitConfig } from './config'; import { getNoVerify, simpleGitConfig } from './config';
import {
getCachedConflictResult,
setCachedConflictResult,
} from './conflicts-cache';
import { import {
bulkChangesDisallowed, bulkChangesDisallowed,
checkForPlatformFailure, checkForPlatformFailure,
handleCommitError, handleCommitError,
} from './error'; } from './error';
import {
getCachedModifiedResult,
setCachedModifiedResult,
} from './modified-cache';
import { deleteCachedBranchParentShaResult } from './parent-sha-cache';
import { configSigningKey, writePrivateKey } from './private-key'; import { configSigningKey, writePrivateKey } from './private-key';
import type { import type {
CommitFilesConfig, CommitFilesConfig,

View file

@ -2,6 +2,7 @@
import { logger } from '../../logger'; import { logger } from '../../logger';
import { platform } from '../../modules/platform'; import { platform } from '../../modules/platform';
import { getCachedBranchParentShaResult } from '../../util/cache/branch';
import { getCache } from '../../util/cache/repository'; import { getCache } from '../../util/cache/repository';
import type { import type {
BranchCache, BranchCache,
@ -13,7 +14,6 @@ import {
isBranchConflicted, isBranchConflicted,
isBranchModified, isBranchModified,
} from '../../util/git'; } from '../../util/git';
import { getCachedBranchParentShaResult } from '../../util/git/parent-sha-cache';
import type { BranchConfig, BranchUpgradeConfig } from '../types'; import type { BranchConfig, BranchUpgradeConfig } from '../types';
function generateBranchUpgradeCache( function generateBranchUpgradeCache(

View file

@ -2,11 +2,11 @@ import is from '@sindresorhus/is';
import type { RenovateConfig } from '../../../config/types'; import type { RenovateConfig } from '../../../config/types';
import { addMeta, logger, removeMeta } from '../../../logger'; import { addMeta, logger, removeMeta } from '../../../logger';
import { hashMap } from '../../../modules/manager'; import { hashMap } from '../../../modules/manager';
import { setBranchNewCommit } from '../../../util/cache/branch';
import { getCache } from '../../../util/cache/repository'; import { getCache } from '../../../util/cache/repository';
import type { BranchCache } from '../../../util/cache/repository/types'; import type { BranchCache } from '../../../util/cache/repository/types';
import { fingerprint } from '../../../util/fingerprint'; import { fingerprint } from '../../../util/fingerprint';
import { branchExists, getBranchCommit } from '../../../util/git'; import { branchExists, getBranchCommit } from '../../../util/git';
import { setBranchNewCommit } from '../../../util/git/set-branch-commit';
import { Limit, incLimitedValue, setMaxLimit } from '../../global/limits'; import { Limit, incLimitedValue, setMaxLimit } from '../../global/limits';
import { import {
BranchConfig, BranchConfig,