mediawiki-extensions-Popups/tests/node-qunit/previewBehavior.test.js
Thiemo Kreuz 76e02fae98 Remove obsolete mediaWiki and jQuery aliases
Notice how this actually reduces the size of the final, compiled index.js.
It's not much, but still.

One issue I noticed is that the coverage reports for the JS code stopped
working. I have no idea why.

Bug: T208951
Change-Id: I2fe92579574b3b1ba4d2dd064899eee944045a96
2019-10-22 09:30:46 +02:00

113 lines
2.6 KiB
JavaScript

import createPreviewBehavior from '../../src/previewBehavior';
import { createStubUser } from './stubs';
QUnit.module( 'ext.popups.preview.settingsBehavior', {
beforeEach() {
function newFromText( title ) {
return {
getUrl() { return `url/${title}`; }
};
}
mw.Title = { newFromText };
},
afterEach() {
mw.Title = null;
}
} );
QUnit.test( 'it should set the settingsUrl', function ( assert ) {
const user = createStubUser( /* isAnon = */ false ),
actions = {};
const behavior = createPreviewBehavior( user, actions );
assert.deepEqual(
behavior.settingsUrl,
'url/Special:Preferences#mw-prefsection-rendering'
);
} );
QUnit.test( 'it shouldn\'t set the settingsUrl if the user is logged out', function ( assert ) {
const user = createStubUser( /* isAnon = */ true ),
actions = {},
behavior = createPreviewBehavior( user, actions );
assert.strictEqual(
behavior.settingsUrl,
undefined,
'No settings URL is set.'
);
} );
QUnit.test( 'it shouldn\'t set a showSettings handler if the user is logged in', function ( assert ) {
const
user = createStubUser( /* isAnon = */ false ),
event = {
preventDefault: this.sandbox.spy()
},
actions = {
showSettings: () => assert.ok( false, 'No show settings handler is set.' )
},
behavior = createPreviewBehavior( user, actions );
behavior.showSettings( event );
assert.ok( true );
} );
QUnit.test( 'it should set a showSettings handler if the user is logged out', function ( assert ) {
const user = createStubUser( /* isAnon = */ true ),
event = {
preventDefault: this.sandbox.spy()
},
actions = {
showSettings: this.sandbox.spy()
},
behavior = createPreviewBehavior( user, actions );
behavior.showSettings( event );
assert.ok(
event.preventDefault.called,
'It should prevent the default action of the event.'
);
assert.ok(
actions.showSettings.called,
'It should dispatch the SETTINGS_SHOW action.'
);
} );
QUnit.test( 'it should mix in default actions', function ( assert ) {
const user = createStubUser( /* isAnon = */ true ),
actions = {};
actions.previewDwell = () => {};
actions.abandon = () => {};
actions.previewShow = () => {};
actions.linkClick = () => {};
const behavior = createPreviewBehavior( user, actions );
assert.strictEqual(
behavior.previewDwell,
actions.previewDwell,
'Preview dwelled action is mixed.'
);
assert.strictEqual(
behavior.previewAbandon,
actions.abandon,
'Preview action is mixed.'
);
assert.strictEqual(
behavior.previewShow,
actions.previewShow,
'Preview shown action is mixed.'
);
assert.strictEqual(
behavior.click,
actions.linkClick,
'Link click action is mixed.'
);
} );