Skip to content

Commit

Permalink
fix: fix application crash on use of unknown parameters group in solu…
Browse files Browse the repository at this point in the history
…tion run templates
  • Loading branch information
csm-thu committed Dec 7, 2021
1 parent 95fc49c commit e759e48
Show file tree
Hide file tree
Showing 2 changed files with 34 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/utils/SolutionsUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,13 @@ const _getRunTemplateParameters = (groupsOfParameters, runTemplateParametersGrou
}
const parameters = [];
for (const parametersGroupId of runTemplateParametersGroupsIds) {
const newParameters = groupsOfParameters[parametersGroupId].parameters || [];
if (!groupsOfParameters[parametersGroupId]) {
console.warn(
`Parameters group "${parametersGroupId}" is referenced in the solution run templates ` +
'but it is not defined in the solution parameters groups'
);
}
const newParameters = groupsOfParameters?.[parametersGroupId]?.parameters || [];
for (const newParameter of newParameters) {
if (parameters.indexOf(newParameter) === -1) {
parameters.push(newParameter);
Expand Down
27 changes: 27 additions & 0 deletions src/utils/__test__/SolutionsUtils.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,33 @@ describe('addRunTemplatesParametersIdsDict for a minimal or incomplete solution'
runTemplatesParametersIdsDict: {},
});
});

test('if a parameters group from run templates is not defined in the solution', () => {
const spyConsoleWarn = jest.spyOn(console, 'warn').mockImplementation();
const solution = {
parameters: [],
parameterGroups: [],
};
const config = {
parameters: {},
parametersGroups: {},
runTemplates: {
runTemplate1: {
parameterGroups: ['groupA'],
},
},
};
SolutionsUtils.addRunTemplatesParametersIdsDict(solution, config);
expect(solution).toStrictEqual({
parameters: [],
parameterGroups: [],
runTemplatesParametersIdsDict: {
runTemplate1: [],
},
});
expect(spyConsoleWarn).toHaveBeenCalledTimes(1);
spyConsoleWarn.mockRestore();
});
});

describe('addRunTemplatesParametersIdsDict for a minimal or incomplete config', () => {
Expand Down

0 comments on commit e759e48

Please sign in to comment.