Skip to content

Commit

Permalink
refactor(workers): Extract 'getFileList' call outside of match loop (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
zharinov committed Sep 30, 2020
1 parent 651f4fb commit 8ab6d60
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 18 deletions.
12 changes: 5 additions & 7 deletions lib/workers/repository/extract/file-match.spec.ts
@@ -1,4 +1,4 @@
import { RenovateConfig, git } from '../../../../test/util';
import { RenovateConfig } from '../../../../test/util';
import * as fileMatch from './file-match';

jest.mock('../../../util/git');
Expand Down Expand Up @@ -48,17 +48,15 @@ describe('workers/repository/extract/file-match', () => {
manager: 'npm',
fileMatch: ['(^|/)package.json$'],
};
it('returns npm files', async () => {
git.getFileList.mockResolvedValue(fileList);
it('returns npm files', () => {
fileList.push('Dockerfile');
const res = await fileMatch.getMatchingFiles(config);
const res = fileMatch.getMatchingFiles(config, fileList);
expect(res).toMatchSnapshot();
expect(res).toHaveLength(2);
});
it('deduplicates', async () => {
git.getFileList.mockResolvedValue(fileList);
it('deduplicates', () => {
config.fileMatch.push('package.json');
const res = await fileMatch.getMatchingFiles(config);
const res = fileMatch.getMatchingFiles(config, fileList);
expect(res).toMatchSnapshot();
expect(res).toHaveLength(2);
});
Expand Down
9 changes: 4 additions & 5 deletions lib/workers/repository/extract/file-match.ts
@@ -1,7 +1,6 @@
import minimatch from 'minimatch';
import { RenovateConfig } from '../../../config/common';
import { logger } from '../../../logger';
import { getFileList } from '../../../util/git';
import { regEx } from '../../../util/regex';

export function getIncludedFiles(
Expand Down Expand Up @@ -46,10 +45,10 @@ export function getFilteredFileList(
return filteredList;
}

export async function getMatchingFiles(
config: RenovateConfig
): Promise<string[]> {
const allFiles = await getFileList();
export function getMatchingFiles(
config: RenovateConfig,
allFiles: string[]
): string[] {
const fileList = getFilteredFileList(config, allFiles);
const { fileMatch, manager } = config;
let matchedFiles: string[] = [];
Expand Down
9 changes: 6 additions & 3 deletions lib/workers/repository/extract/index.ts
Expand Up @@ -7,6 +7,7 @@ import {
import { logger } from '../../../logger';
import { getManagerList } from '../../../manager';
import { PackageFile } from '../../../manager/common';
import { getFileList } from '../../../util/git';
import { getMatchingFiles } from './file-match';
import { getManagerPackageFiles } from './manager-files';

Expand All @@ -21,6 +22,7 @@ export async function extractAllDependencies(
);
}
const extractList: RenovateConfig[] = [];
const fileList = await getFileList();
for (const manager of managerList) {
const managerConfig = getManagerConfig(config, manager);
managerConfig.manager = manager;
Expand All @@ -30,15 +32,16 @@ export async function extractAllDependencies(
managerConfig,
regexManager
);
regexManagerConfig.fileList = await getMatchingFiles(
regexManagerConfig
regexManagerConfig.fileList = getMatchingFiles(
regexManagerConfig,
fileList
);
if (regexManagerConfig.fileList.length) {
extractList.push(regexManagerConfig);
}
}
} else {
managerConfig.fileList = await getMatchingFiles(managerConfig);
managerConfig.fileList = getMatchingFiles(managerConfig, fileList);
if (managerConfig.fileList.length) {
extractList.push(managerConfig);
}
Expand Down
6 changes: 3 additions & 3 deletions lib/workers/repository/extract/manager-files.spec.ts
Expand Up @@ -31,7 +31,7 @@ describe('workers/repository/extract/manager-files', () => {
});
it('skips files if null content returned', async () => {
const managerConfig = { manager: 'npm', enabled: true };
fileMatch.getMatchingFiles.mockResolvedValue(['package.json']);
fileMatch.getMatchingFiles.mockReturnValue(['package.json']);
const res = await getManagerPackageFiles(managerConfig);
expect(res).toHaveLength(0);
});
Expand All @@ -41,7 +41,7 @@ describe('workers/repository/extract/manager-files', () => {
enabled: true,
fileList: ['Dockerfile'],
};
fileMatch.getMatchingFiles.mockResolvedValue(['Dockerfile']);
fileMatch.getMatchingFiles.mockReturnValue(['Dockerfile']);
fs.readLocalFile.mockResolvedValueOnce('some content');
html.extractPackageFile = jest.fn(() => ({
deps: [{}, { replaceString: 'abc' }],
Expand All @@ -55,7 +55,7 @@ describe('workers/repository/extract/manager-files', () => {
enabled: true,
fileList: ['package.json'],
};
fileMatch.getMatchingFiles.mockResolvedValue(['package.json']);
fileMatch.getMatchingFiles.mockReturnValue(['package.json']);
fs.readLocalFile.mockResolvedValueOnce(
'{"dependencies":{"chalk":"2.0.0"}}'
);
Expand Down

0 comments on commit 8ab6d60

Please sign in to comment.