mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-28 09:30:17 +00:00
97147857b2
* Removes server rendered vector-tab-noicon class from legacy Vector as it is not currently used. * Adds menuTabs.js responsible for adding the vector-tab-noicon class when menu items are added to tabbed menus. This is only used in vector-22. * Adds unit test Bug: T320691 Change-Id: Iffad86125f8754305f592ddc19d894866bd6dedc
77 lines
1.9 KiB
JavaScript
77 lines
1.9 KiB
JavaScript
const menuTabs = require( '../../../resources/skins.vector.js/menuTabs.js' );
|
|
|
|
describe( 'menuTabs', () => {
|
|
beforeEach( () => {
|
|
/** @type {Function} */
|
|
let callback;
|
|
// @ts-ignore
|
|
jest.spyOn( mw, 'hook' ).mockImplementation( () => {
|
|
return {
|
|
add: function ( fn ) {
|
|
callback = fn;
|
|
|
|
return this;
|
|
},
|
|
fire: ( data ) => {
|
|
if ( callback ) {
|
|
callback( data );
|
|
}
|
|
}
|
|
};
|
|
} );
|
|
|
|
} );
|
|
|
|
afterEach( () => {
|
|
jest.restoreAllMocks();
|
|
} );
|
|
|
|
test( 'adds vector-tab-noicon class to li element when part of tabs', () => {
|
|
document.body.innerHTML = `
|
|
<div id="p-views" class="vector-menu mw-portlet mw-portlet-views vector-menu-tabs">
|
|
<div class="vector-menu-content">
|
|
<ul class="vector-menu-content-list">
|
|
<li class="mw-list-item mw-list-item-js" id="test-id">
|
|
<a href="#test-href">
|
|
<span>
|
|
test link content
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
`;
|
|
const menuItem = document.getElementById( 'test-id' );
|
|
menuTabs();
|
|
// @ts-ignore
|
|
mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } );
|
|
|
|
expect( document.body.innerHTML ).toMatchSnapshot();
|
|
} );
|
|
|
|
test( 'does not add vector-tab-noicon class to li element when not part of tabs', () => {
|
|
document.body.innerHTML = `
|
|
<div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants vector-menu-dropdown-noicon vector-menu-dropdown">
|
|
<div class="vector-menu-content">
|
|
<ul class="vector-menu-content-list">
|
|
<li class="mw-list-item mw-list-item-js" id="test-id">
|
|
<a href="#test-href">
|
|
<span>
|
|
test link content
|
|
</span>
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
`;
|
|
const menuItem = document.getElementById( 'test-id' );
|
|
menuTabs();
|
|
// @ts-ignore
|
|
mw.hook( 'util' ).fire( menuItem, { id: 'test-id' } );
|
|
|
|
expect( document.body.innerHTML ).toMatchSnapshot();
|
|
} );
|
|
} );
|