Merge "Fix `formatPageIssuesSeverity`"
This commit is contained in:
commit
5145bc1818
|
@ -41,23 +41,27 @@
|
||||||
* In the case that a page-issue is part of a "multiple issues" template,
|
* In the case that a page-issue is part of a "multiple issues" template,
|
||||||
* returns the maximum severity for that group of issues.
|
* returns the maximum severity for that group of issues.
|
||||||
*
|
*
|
||||||
* @param {array} acc - the return array containing severities
|
* @param {array} formattedArr - the return array containing severities
|
||||||
* @param {IssueSummary} summary current IssueSummary object
|
* @param {IssueSummary} currentItem current IssueSummary object
|
||||||
* @param {number} currentIndex current index of pageIssues
|
* @param {number} currentIndex current index of pageIssues
|
||||||
* @param {array} pageIssues array of pageIssues
|
* @param {array} pageIssues array of pageIssues
|
||||||
*
|
*
|
||||||
* @return {array} acc
|
* @return {array} acc
|
||||||
*/
|
*/
|
||||||
function formatPageIssuesSeverity( acc, summary, currentIndex, pageIssues ) {
|
function formatPageIssuesSeverity( formattedArr, currentItem, currentIndex, pageIssues ) {
|
||||||
var lastItem = pageIssues[ currentIndex - 1 ];
|
var lastItem = pageIssues[ currentIndex - 1 ],
|
||||||
if ( lastItem && lastItem.isMultiple && summary.isMultiple ) {
|
lastFormattedIndex = formattedArr.length - 1,
|
||||||
acc[ acc.length - 1 ] = pageIssuesParser.maxSeverity(
|
lastFormattedValue = formattedArr[ lastFormattedIndex ];
|
||||||
[ lastItem.severity, summary.severity ]
|
// If the last and current item `isMultiple`, fold the maxSeverity
|
||||||
|
// of the two items into a single value.
|
||||||
|
if ( lastItem && lastItem.isMultiple && currentItem.isMultiple ) {
|
||||||
|
formattedArr[ lastFormattedIndex ] = pageIssuesParser.maxSeverity(
|
||||||
|
[ lastFormattedValue, currentItem.severity ]
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
acc.push( summary.severity );
|
formattedArr.push( currentItem.severity );
|
||||||
}
|
}
|
||||||
return acc;
|
return formattedArr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -336,6 +340,7 @@
|
||||||
// the subscription call in cleanuptemplates.
|
// the subscription call in cleanuptemplates.
|
||||||
log: pageIssuesLogger.log,
|
log: pageIssuesLogger.log,
|
||||||
test: {
|
test: {
|
||||||
|
formatPageIssuesSeverity: formatPageIssuesSeverity,
|
||||||
extractMessage: extractMessage,
|
extractMessage: extractMessage,
|
||||||
getAllIssuesSections: getAllIssuesSections,
|
getAllIssuesSections: getAllIssuesSections,
|
||||||
createBanner: createBanner
|
createBanner: createBanner
|
||||||
|
|
|
@ -4,11 +4,24 @@
|
||||||
pageIssuesParser = M.require( 'skins.minerva.scripts/pageIssuesParser' ),
|
pageIssuesParser = M.require( 'skins.minerva.scripts/pageIssuesParser' ),
|
||||||
extractMessage = pageIssues.test.extractMessage,
|
extractMessage = pageIssues.test.extractMessage,
|
||||||
createBanner = pageIssues.test.createBanner,
|
createBanner = pageIssues.test.createBanner,
|
||||||
|
formatPageIssuesSeverity = pageIssues.test.formatPageIssuesSeverity,
|
||||||
MEDIUM_ISSUE = {
|
MEDIUM_ISSUE = {
|
||||||
severity: 'MEDIUM',
|
severity: 'MEDIUM',
|
||||||
icon: 'i',
|
icon: 'i',
|
||||||
text: 't'
|
text: 't'
|
||||||
},
|
},
|
||||||
|
MEDIUM_MULTIPLE_ISSUE = {
|
||||||
|
severity: 'MEDIUM',
|
||||||
|
isMultiple: true,
|
||||||
|
icon: 'i',
|
||||||
|
text: 't'
|
||||||
|
},
|
||||||
|
LOW_MULTIPLE_ISSUE = {
|
||||||
|
severity: 'LOW',
|
||||||
|
isMultiple: true,
|
||||||
|
icon: 'i',
|
||||||
|
text: 't'
|
||||||
|
},
|
||||||
LOW_ISSUE = {
|
LOW_ISSUE = {
|
||||||
severity: 'LOW',
|
severity: 'LOW',
|
||||||
icon: 'i',
|
icon: 'i',
|
||||||
|
@ -64,6 +77,35 @@
|
||||||
} );
|
} );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
QUnit.test( 'formatPageIssuesSeverity', function ( assert ) {
|
||||||
|
var multipleIssues = [
|
||||||
|
MEDIUM_MULTIPLE_ISSUE,
|
||||||
|
LOW_MULTIPLE_ISSUE,
|
||||||
|
LOW_MULTIPLE_ISSUE
|
||||||
|
],
|
||||||
|
multipleSingleIssues = [
|
||||||
|
LOW_ISSUE,
|
||||||
|
HIGH_ISSUE,
|
||||||
|
MEDIUM_ISSUE
|
||||||
|
],
|
||||||
|
mixedMultipleSingle = [
|
||||||
|
HIGH_ISSUE,
|
||||||
|
LOW_MULTIPLE_ISSUE,
|
||||||
|
MEDIUM_MULTIPLE_ISSUE,
|
||||||
|
LOW_ISSUE,
|
||||||
|
MEDIUM_ISSUE,
|
||||||
|
HIGH_ISSUE
|
||||||
|
],
|
||||||
|
testMultiple = multipleIssues.reduce( formatPageIssuesSeverity, [] ),
|
||||||
|
testSingle = multipleSingleIssues.reduce( formatPageIssuesSeverity, [] ),
|
||||||
|
testMixed = mixedMultipleSingle.reduce( formatPageIssuesSeverity, [] );
|
||||||
|
|
||||||
|
assert.deepEqual( testMultiple, [ 'MEDIUM' ], 'Multiple issues return one maxSeverity value' );
|
||||||
|
assert.deepEqual( testSingle, [ 'LOW', 'HIGH', 'MEDIUM' ], 'Single issues return each corresponding severity' );
|
||||||
|
assert.deepEqual( testMixed, [ 'HIGH', 'MEDIUM', 'LOW', 'MEDIUM', 'HIGH' ], 'Mixed single/multiple return one value for multiples' );
|
||||||
|
|
||||||
|
} );
|
||||||
|
|
||||||
QUnit.test( 'extractMessage', function ( assert ) {
|
QUnit.test( 'extractMessage', function ( assert ) {
|
||||||
this.sandbox.stub( pageIssuesParser, 'parse' ).returns(
|
this.sandbox.stub( pageIssuesParser, 'parse' ).returns(
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue