Add tests for page issues code

Bug: T191532
Change-Id: I5291b51ec32ab95ff1ec41e50b84fea4567f28cb
This commit is contained in:
jdlrobson 2018-07-30 22:35:54 +08:00 committed by Jdlrobson
parent 0ca42ee64e
commit 9644e5372b
3 changed files with 45 additions and 2 deletions

View File

@ -75,7 +75,8 @@ class MinervaHooks {
'mobile.startup', 'mobile.startup',
'skins.minerva.notifications.badge', 'skins.minerva.notifications.badge',
'mediawiki.user', 'mediawiki.user',
'mediawiki.experiments' 'mediawiki.experiments',
'mobile.issues'
], ],
'localBasePath' => dirname( __DIR__ ), 'localBasePath' => dirname( __DIR__ ),
'remoteSkinPath' => 'MinervaNeue', 'remoteSkinPath' => 'MinervaNeue',
@ -85,10 +86,12 @@ class MinervaHooks {
'resources/skins.minerva.scripts/pageIssueParser.js', 'resources/skins.minerva.scripts/pageIssueParser.js',
'resources/skins.minerva.scripts/DownloadIcon.js', 'resources/skins.minerva.scripts/DownloadIcon.js',
'resources/skins.minerva.scripts/AB.js', 'resources/skins.minerva.scripts/AB.js',
'resources/skins.minerva.scripts/cleanuptemplates.js',
// test files // test files
'tests/qunit/skins.minerva.scripts/test_DownloadIcon.js', 'tests/qunit/skins.minerva.scripts/test_DownloadIcon.js',
'tests/qunit/skins.minerva.scripts/test_pageIssueParser.js', 'tests/qunit/skins.minerva.scripts/test_pageIssueParser.js',
'tests/qunit/skins.minerva.scripts/test_AB.js', 'tests/qunit/skins.minerva.scripts/test_AB.js',
'tests/qunit/skins.minerva.scripts/test_cleanuptemplates.js',
'tests/qunit/skins.minerva.notifications.badge/test_NotificationBadge.js' 'tests/qunit/skins.minerva.notifications.badge/test_NotificationBadge.js'
], ],
]; ];

View File

@ -88,6 +88,8 @@
* and if false, a link will be rendered under the heading. * and if false, a link will be rendered under the heading.
* @param {OverlayManager} overlayManager * @param {OverlayManager} overlayManager
* @ignore * @ignore
*
* @return {JQuery.Object}
*/ */
function createBanner( $container, labelText, section, inline, overlayManager ) { function createBanner( $container, labelText, section, inline, overlayManager ) {
var $learnMore, var $learnMore,
@ -148,6 +150,8 @@
$metadata.remove(); $metadata.remove();
} }
} }
return $metadata;
} }
/** /**
@ -250,7 +254,10 @@
} }
M.define( 'skins.minerva.scripts/cleanuptemplates', { M.define( 'skins.minerva.scripts/cleanuptemplates', {
init: initPageIssues init: initPageIssues,
test: {
createBanner: createBanner
}
} ); } );
}( mw.mobileFrontend, jQuery ) ); }( mw.mobileFrontend, jQuery ) );

View File

@ -0,0 +1,33 @@
( function ( M ) {
var createBanner = M.require( 'skins.minerva.scripts/cleanuptemplates' ).test.createBanner,
OverlayManager = M.require( 'mobile.startup/OverlayManager' ),
overlayManager = new OverlayManager( require( 'mediawiki.router' ) ),
$mockContainer = $(
'<div id=\'bodyContent\'>' +
'<table class=\'ambox ambox-content\'>' +
'<tbody class=\'mbox-text\'>' +
'<tr><td><span class=\'mbox-text-span\'> ambox text span </span></td></tr>' +
'</tbody>' +
'</table>' +
'</div>'
),
labelText = 'label text',
section = 0,
inline = true,
processedAmbox = createBanner( $mockContainer, labelText, section, inline, overlayManager );
QUnit.module( 'Minerva cleanuptemplates' );
QUnit.test( 'createBanner() should add a "learn more" message', function ( assert ) {
assert.strictEqual( /⧼skin-minerva-issue-learn-more⧽/.test( processedAmbox.html() ), true );
} );
QUnit.test( 'createBanner() should add an icon', function ( assert ) {
assert.strictEqual( /mw-ui-icon/.test( processedAmbox.html() ), true );
} );
QUnit.test( 'clicking on the product of createBanner() should trigger a URL change', function ( assert ) {
processedAmbox.click();
assert.strictEqual( window.location.hash, '#/issues/0' );
} );
}( mw.mobileFrontend ) );