Skip to content

Commit

Permalink
Better error messages for invalid queries and query filters blocks
Browse files Browse the repository at this point in the history
Handle other cases where the config is invalid.
  • Loading branch information
Andrew Eisenberg committed Aug 23, 2022
1 parent fba13b0 commit 5861352
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 5 deletions.
3 changes: 3 additions & 0 deletions lib/analyze.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/analyze.js.map

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions lib/analyze.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/analyze.test.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/config-utils.test.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion lib/config-utils.test.js.map

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions src/analyze.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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({
Expand Down
6 changes: 6 additions & 0 deletions src/analyze.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion src/config-utils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1327,7 +1327,7 @@ doInvalidInputTest(
queries:
- uses:
- hello: world`,
configUtils.getQueryUsesInvalid
configUtils.getQueriesMissingUses
);

function doInvalidQueryUsesTest(
Expand Down

0 comments on commit 5861352

Please sign in to comment.