mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/Vector.git
synced 2024-11-30 18:35:44 +00:00
7e7486c4a5
Change-Id: I350941a711d2304fc968b3ba1f1e0afa5878578e
80 lines
2.3 KiB
JavaScript
80 lines
2.3 KiB
JavaScript
const clientPreferences = require( '../../resources/skins.vector.clientPreferences/clientPreferences.js' );
|
|
|
|
let cp;
|
|
describe( 'clientPreferences', () => {
|
|
beforeEach( () => {
|
|
document.body.innerHTML = '';
|
|
cp = document.createElement( 'div' );
|
|
cp.id = 'cp';
|
|
document.body.appendChild( cp );
|
|
mw.requestIdleCallback = ( callback ) => callback();
|
|
mw.user.clientPrefs = {
|
|
get: jest.fn( () => '1' )
|
|
};
|
|
const portlet = document.createElement( 'div' );
|
|
portlet.innerHTML = `
|
|
<div class="vector-menu-heading">Width</div>
|
|
<div class="vector-menu-content">
|
|
<ul class="vector-menu-content-list"></ul>
|
|
</div>
|
|
`;
|
|
mw.util.addPortlet = jest.fn( () => portlet );
|
|
mw.util.addPortletLink = jest.fn( () => {
|
|
const li = document.createElement( 'li' );
|
|
const a = document.createElement( 'a' );
|
|
li.appendChild( a );
|
|
portlet.appendChild( li );
|
|
return li;
|
|
} );
|
|
mw.message = jest.fn( ( key ) => ( {
|
|
text: () => `msg:${ key }`,
|
|
exists: () => true
|
|
} ) );
|
|
} );
|
|
|
|
test( 'render empty', () => clientPreferences.render( '#cp', {} ).then( () => {
|
|
expect( cp.innerHTML ).toMatchSnapshot();
|
|
} ) );
|
|
|
|
test( 'render font size', () => {
|
|
document.documentElement.setAttribute( 'class', 'vector-feature-custom-font-size-clientpref-2' );
|
|
return clientPreferences.render( '#cp', {
|
|
'vector-feature-custom-font-size': {
|
|
options: [ '0', '1', '2' ],
|
|
preferenceKey: 'vector-font-size'
|
|
}
|
|
} ).then( () => {
|
|
expect( cp.innerHTML ).toMatchSnapshot();
|
|
} );
|
|
} );
|
|
|
|
test( 'doesnt render exclusion notice if the msg key doesnt exist', () => {
|
|
mw.message = jest.fn( ( key ) => ( {
|
|
text: () => `msg:${ key }`,
|
|
exists: () => key !== 'vector-feature-limited-width-exclusion-notice'
|
|
} ) );
|
|
document.documentElement.setAttribute( 'class', 'vector-feature-limited-width-clientpref-0' );
|
|
return clientPreferences.render( '#cp', {
|
|
'vector-feature-limited-width': {
|
|
options: [ '1', '0' ],
|
|
preferenceKey: 'vector-limited-width'
|
|
}
|
|
} ).then( () => {
|
|
expect( cp.innerHTML ).toMatchSnapshot();
|
|
} );
|
|
} );
|
|
|
|
test( 'render toggle', () => {
|
|
document.documentElement.setAttribute( 'class', 'expandAll-clientpref-1' );
|
|
return clientPreferences.render( '#cp', {
|
|
expandAll: {
|
|
options: [ '0', '1' ],
|
|
preferenceKey: 'expandAll',
|
|
type: 'switch'
|
|
}
|
|
} ).then( () => {
|
|
expect( cp.innerHTML ).toMatchSnapshot();
|
|
} );
|
|
} );
|
|
} );
|