mirror of
https://github.com/github/codeql-action.git
synced 2026-10-03 17:41:28 +00:00
Better error messages for invalid queries and query filters blocks
Handle other cases where the config is invalid.
This commit is contained in:
3
lib/analyze.js
generated
3
lib/analyze.js
generated
@@ -354,6 +354,9 @@ function validateQueryFilters(queryFilters) {
|
||||
if (!queryFilters) {
|
||||
return [];
|
||||
}
|
||||
if (!Array.isArray(queryFilters)) {
|
||||
throw new Error(`Query filters must be an array of "include" or "exclude" entries. Found ${typeof queryFilters}`);
|
||||
}
|
||||
const errors = [];
|
||||
for (const qf of queryFilters) {
|
||||
const keys = Object.keys(qf);
|
||||
|
||||
File diff suppressed because one or more lines are too long
5
lib/analyze.test.js
generated
5
lib/analyze.test.js
generated
@@ -258,6 +258,11 @@ const util = __importStar(require("./util"));
|
||||
t.throws(() => {
|
||||
return (0, analyze_1.validateQueryFilters)([{ xxx: "foo" }]);
|
||||
}, { message: /Only "include" or "exclude" filters are allowed/ });
|
||||
t.throws(() => {
|
||||
return (0, analyze_1.validateQueryFilters)({ exclude: "foo" });
|
||||
}, {
|
||||
message: /Query filters must be an array of "include" or "exclude" entries/,
|
||||
});
|
||||
});
|
||||
const convertPackToQuerySuiteEntryMacro = ava_1.default.macro({
|
||||
exec: (t, packSpec, suiteEntry) => t.deepEqual((0, analyze_1.convertPackToQuerySuiteEntry)(packSpec), suiteEntry),
|
||||
|
||||
File diff suppressed because one or more lines are too long
2
lib/config-utils.test.js
generated
2
lib/config-utils.test.js
generated
@@ -697,7 +697,7 @@ doInvalidInputTest("paths invalid type", `paths: 17`, configUtils.getPathsInvali
|
||||
doInvalidInputTest("queries uses invalid type", `
|
||||
queries:
|
||||
- uses:
|
||||
- hello: world`, configUtils.getQueryUsesInvalid);
|
||||
- hello: world`, configUtils.getQueriesMissingUses);
|
||||
function doInvalidQueryUsesTest(input, expectedErrorMessageGenerator) {
|
||||
// Invalid contents of a "queries.uses" field.
|
||||
// Should fail with the expected error message
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -312,6 +312,16 @@ test("validateQueryFilters", (t) => {
|
||||
},
|
||||
{ message: /Only "include" or "exclude" filters are allowed/ }
|
||||
);
|
||||
|
||||
t.throws(
|
||||
() => {
|
||||
return validateQueryFilters({ exclude: "foo" } as any);
|
||||
},
|
||||
{
|
||||
message:
|
||||
/Query filters must be an array of "include" or "exclude" entries/,
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
const convertPackToQuerySuiteEntryMacro = test.macro({
|
||||
|
||||
@@ -593,6 +593,12 @@ export function validateQueryFilters(queryFilters?: configUtils.QueryFilter[]) {
|
||||
return [];
|
||||
}
|
||||
|
||||
if (!Array.isArray(queryFilters)) {
|
||||
throw new Error(
|
||||
`Query filters must be an array of "include" or "exclude" entries. Found ${typeof queryFilters}`
|
||||
);
|
||||
}
|
||||
|
||||
const errors: string[] = [];
|
||||
for (const qf of queryFilters) {
|
||||
const keys = Object.keys(qf);
|
||||
|
||||
@@ -1327,7 +1327,7 @@ doInvalidInputTest(
|
||||
queries:
|
||||
- uses:
|
||||
- hello: world`,
|
||||
configUtils.getQueryUsesInvalid
|
||||
configUtils.getQueriesMissingUses
|
||||
);
|
||||
|
||||
function doInvalidQueryUsesTest(
|
||||
|
||||
Reference in New Issue
Block a user