2021-04-16 11:06:13 +00:00
|
|
|
import * as stubs from './stubs';
|
2020-12-02 15:48:33 +00:00
|
|
|
import isReferencePreviewsEnabled from '../../src/isReferencePreviewsEnabled';
|
|
|
|
|
2021-04-15 07:20:00 +00:00
|
|
|
function createStubUserSettings( expectEnabled ) {
|
|
|
|
return {
|
|
|
|
isReferencePreviewsEnabled() {
|
|
|
|
return expectEnabled !== false;
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2021-04-16 11:06:13 +00:00
|
|
|
QUnit.module( 'ext.popups#isReferencePreviewsEnabled', {
|
|
|
|
beforeEach() {
|
|
|
|
mw.user = { options: { get: () => '1' } };
|
|
|
|
},
|
|
|
|
afterEach() {
|
|
|
|
mw.user = null;
|
|
|
|
}
|
|
|
|
} );
|
2021-04-16 11:23:10 +00:00
|
|
|
|
2020-12-02 15:48:33 +00:00
|
|
|
QUnit.test( 'it should display reference previews when conditions are fulfilled', ( assert ) => {
|
2021-04-16 11:06:13 +00:00
|
|
|
const user = stubs.createStubUser( false ),
|
2021-04-15 07:20:00 +00:00
|
|
|
userSettings = createStubUserSettings( false ),
|
2021-04-16 11:06:13 +00:00
|
|
|
config = new Map();
|
2020-12-02 15:48:33 +00:00
|
|
|
|
|
|
|
config.set( 'wgPopupsReferencePreviews', true );
|
|
|
|
config.set( 'wgPopupsConflictsWithRefTooltipsGadget', false );
|
|
|
|
|
|
|
|
assert.ok(
|
2021-04-15 07:20:00 +00:00
|
|
|
isReferencePreviewsEnabled( user, userSettings, config ),
|
2020-12-02 15:48:33 +00:00
|
|
|
'If the user is logged in and the user is in the on group, then it\'s enabled.'
|
|
|
|
);
|
|
|
|
} );
|
|
|
|
|
|
|
|
QUnit.test( 'it should handle the conflict with the Reference Tooltips Gadget', ( assert ) => {
|
2021-04-16 11:06:13 +00:00
|
|
|
const user = stubs.createStubUser( false ),
|
2021-04-15 07:20:00 +00:00
|
|
|
userSettings = createStubUserSettings( false ),
|
2021-04-16 11:06:13 +00:00
|
|
|
config = new Map();
|
2020-12-02 15:48:33 +00:00
|
|
|
|
|
|
|
config.set( 'wgPopupsReferencePreviews', true );
|
|
|
|
config.set( 'wgPopupsConflictsWithRefTooltipsGadget', true );
|
|
|
|
|
|
|
|
assert.notOk(
|
2021-04-15 07:20:00 +00:00
|
|
|
isReferencePreviewsEnabled( user, userSettings, config ),
|
2020-12-02 15:48:33 +00:00
|
|
|
'Reference Previews is disabled.'
|
|
|
|
);
|
|
|
|
} );
|
|
|
|
|
|
|
|
QUnit.test( 'it should not be enabled when the global is disabling it', ( assert ) => {
|
2021-04-16 11:06:13 +00:00
|
|
|
const user = stubs.createStubUser( false ),
|
2021-04-15 07:20:00 +00:00
|
|
|
userSettings = createStubUserSettings( false ),
|
2021-04-16 11:06:13 +00:00
|
|
|
config = new Map();
|
2020-12-02 15:48:33 +00:00
|
|
|
|
|
|
|
config.set( 'wgPopupsReferencePreviews', false );
|
|
|
|
config.set( 'wgPopupsConflictsWithRefTooltipsGadget', false );
|
|
|
|
|
|
|
|
assert.notOk(
|
2021-04-15 07:20:00 +00:00
|
|
|
isReferencePreviewsEnabled( user, userSettings, config ),
|
2020-12-02 15:48:33 +00:00
|
|
|
'Reference Previews is disabled.'
|
|
|
|
);
|
|
|
|
} );
|
|
|
|
|
|
|
|
QUnit.test( 'it should not be enabled when minerva skin used', ( assert ) => {
|
2021-04-16 11:06:13 +00:00
|
|
|
const user = stubs.createStubUser( false ),
|
2021-04-15 07:20:00 +00:00
|
|
|
userSettings = createStubUserSettings( false ),
|
2021-04-16 11:06:13 +00:00
|
|
|
config = new Map();
|
2020-12-02 15:48:33 +00:00
|
|
|
|
|
|
|
config.set( 'wgPopupsReferencePreviews', true );
|
|
|
|
config.set( 'wgPopupsConflictsWithRefTooltipsGadget', false );
|
|
|
|
config.set( 'skin', 'minerva' );
|
|
|
|
|
|
|
|
assert.notOk(
|
2021-04-15 07:20:00 +00:00
|
|
|
isReferencePreviewsEnabled( user, userSettings, config ),
|
2020-12-02 15:48:33 +00:00
|
|
|
'Reference Previews is disabled.'
|
|
|
|
);
|
|
|
|
} );
|