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,
|
||||
* returns the maximum severity for that group of issues.
|
||||
*
|
||||
* @param {array} acc - the return array containing severities
|
||||
* @param {IssueSummary} summary current IssueSummary object
|
||||
* @param {array} formattedArr - the return array containing severities
|
||||
* @param {IssueSummary} currentItem current IssueSummary object
|
||||
* @param {number} currentIndex current index of pageIssues
|
||||
* @param {array} pageIssues array of pageIssues
|
||||
*
|
||||
* @return {array} acc
|
||||
*/
|
||||
function formatPageIssuesSeverity( acc, summary, currentIndex, pageIssues ) {
|
||||
var lastItem = pageIssues[ currentIndex - 1 ];
|
||||
if ( lastItem && lastItem.isMultiple && summary.isMultiple ) {
|
||||
acc[ acc.length - 1 ] = pageIssuesParser.maxSeverity(
|
||||
[ lastItem.severity, summary.severity ]
|
||||
function formatPageIssuesSeverity( formattedArr, currentItem, currentIndex, pageIssues ) {
|
||||
var lastItem = pageIssues[ currentIndex - 1 ],
|
||||
lastFormattedIndex = formattedArr.length - 1,
|
||||
lastFormattedValue = formattedArr[ lastFormattedIndex ];
|
||||
// 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 {
|
||||
acc.push( summary.severity );
|
||||
formattedArr.push( currentItem.severity );
|
||||
}
|
||||
return acc;
|
||||
return formattedArr;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -336,6 +340,7 @@
|
|||
// the subscription call in cleanuptemplates.
|
||||
log: pageIssuesLogger.log,
|
||||
test: {
|
||||
formatPageIssuesSeverity: formatPageIssuesSeverity,
|
||||
extractMessage: extractMessage,
|
||||
getAllIssuesSections: getAllIssuesSections,
|
||||
createBanner: createBanner
|
||||
|
|
|
@ -4,11 +4,24 @@
|
|||
pageIssuesParser = M.require( 'skins.minerva.scripts/pageIssuesParser' ),
|
||||
extractMessage = pageIssues.test.extractMessage,
|
||||
createBanner = pageIssues.test.createBanner,
|
||||
formatPageIssuesSeverity = pageIssues.test.formatPageIssuesSeverity,
|
||||
MEDIUM_ISSUE = {
|
||||
severity: 'MEDIUM',
|
||||
icon: 'i',
|
||||
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 = {
|
||||
severity: 'LOW',
|
||||
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 ) {
|
||||
this.sandbox.stub( pageIssuesParser, 'parse' ).returns(
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue