Refactor common code to function and add missing test

This commit is contained in:
Sam Partington 2020-08-24 15:37:07 +01:00
parent c6f02973ac
commit 7f19f9198a
6 changed files with 137 additions and 27 deletions

30
lib/config-utils.js generated
View file

@ -343,6 +343,20 @@ async function getLanguages() {
}
return languages;
}
/**
* Returns true if queries were provided in the workflow file
* (and thus added), otherwise false
*/
function addQueriesFromWorkflowIfRequired(configFile, languages, resultMap) {
const queryUses = core.getInput('queries');
if (queryUses) {
queryUses.split(',').forEach(async (query) => {
await parseQueryUses(configFile, languages, resultMap, query);
});
return true;
}
return false;
}
/**
* Get the default config for when the user has not supplied one.
*/
@ -350,12 +364,7 @@ async function getDefaultConfig() {
const languages = await getLanguages();
const queries = {};
await addDefaultQueries(languages, queries);
const queryUses = core.getInput('queries');
if (queryUses) {
queryUses.split(',').forEach(async (query) => {
await parseQueryUses('', languages, queries, query);
});
}
addQueriesFromWorkflowIfRequired('', languages, queries);
return {
languages: languages,
queries: queries,
@ -410,13 +419,8 @@ async function loadConfig(configFile) {
}
// If queries were provided using `with` in the action configuration,
// they should take precedence over the queries in the config file
const queryUses = core.getInput('queries');
if (queryUses) {
queryUses.split(',').forEach(async (query) => {
await parseQueryUses(configFile, languages, queries, query);
});
}
else if (QUERIES_PROPERTY in parsedYAML) {
const addedQueriesFromAction = addQueriesFromWorkflowIfRequired(configFile, languages, queries);
if (!addedQueriesFromAction && QUERIES_PROPERTY in parsedYAML) {
if (!(parsedYAML[QUERIES_PROPERTY] instanceof Array)) {
throw new Error(getQueriesInvalid(configFile));
}