My logic was a little off - this is what I have now:
const areIssuesToDisplay = (importance, hasMissingData, hasIncorrectData) => {
if (+importance <= 3) {
return hasMissingData || hasIncorrectData;
}
return hasMissingData;
}
const testMatrix = [
{ importance: '1', hasMissingData: false, hasIncorrectData: false, expected: false },
{ importance: '1', hasMissingData: true, hasIncorrectData: false, expected: true },
{ importance: '1', hasMissingData: false, hasIncorrectData: true, expected: true },
{ importance: '1', hasMissingData: true, hasIncorrectData: true, expected: true },
{ importance: '2', hasMissingData: false, hasIncorrectData: false, expected: false },
{ importance: '2', hasMissingData: true, hasIncorrectData: false, expected: true },
{ importance: '2', hasMissingData: false, hasIncorrectData: true, expected: true },
{ importance: '2', hasMissingData: true, hasIncorrectData: true, expected: true },
{ importance: '3', hasMissingData: false, hasIncorrectData: false, expected: false },
{ importance: '3', hasMissingData: true, hasIncorrectData: false, expected: true },
{ importance: '3', hasMissingData: false, hasIncorrectData: true, expected: true },
{ importance: '3', hasMissingData: true, hasIncorrectData: true, expected: true },
{ importance: '4', hasMissingData: false, hasIncorrectData: false, expected: false },
{ importance: '4', hasMissingData: true, hasIncorrectData: false, expected: true },
{ importance: '4', hasMissingData: false, hasIncorrectData: true, expected: false },
{ importance: '4', hasMissingData: true, hasIncorrectData: true, expected: true },
{ importance: '5', hasMissingData: false, hasIncorrectData: false, expected: false },
{ importance: '5', hasMissingData: true, hasIncorrectData: false, expected: true },
{ importance: '5', hasMissingData: false, hasIncorrectData: true, expected: false },
{ importance: '5', hasMissingData: true, hasIncorrectData: true, expected: true },
];
console.clear();
testMatrix.forEach(({ importance, hasMissingData, hasIncorrectData, expected }) => {
const actual = areIssuesToDisplay(importance, hasMissingData, hasIncorrectData);
const hasPassed = actual === expected;
console.log(`${hasPassed ? 'PASS' : 'FAIL'} - ${importance}, ${hasMissingData}, ${hasMissingData} => ${actual}`);
});
That has a matrix for testing it. There is a pen here if you want to mess around with it.
I used the JS standard for variable naming. And we don’t normally store strings like “yes” and “no” - those would probably be boolean - but that is easy to fix if you need to.