mediawiki-extensions-Popups/tests/node-qunit/instrumentation/eventLogging.test.js
jdlrobson 912402e840 Remove A/B testing code
No longer needed. We can't turn something off again for people
now they expect it to exist.

Clarified usage instructions of PopupsEventLogging to make sure
it's more scary given the implications

Bug: T173952
Change-Id: I7be005b79da498d8e7b7df8f18b60c1327636a2c
2018-05-07 12:37:41 -07:00

65 lines
1.9 KiB
JavaScript

import { isEnabled } from '../../../src/instrumentation/eventLogging';
import * as stubs from '../stubs';
QUnit.module( 'ext.popups/instrumentation/eventLogging', {
beforeEach() {
this.config = stubs.createStubMap();
this.config.set( 'wgPopupsEventLogging', true );
this.window = {
navigator: {
sendBeacon() {}
}
};
this.user = stubs.createStubUser();
this.anonUser = stubs.createStubUser( true );
// Helper function that DRYs up the tests below.
this.isEnabled = function ( isAnon ) {
return isEnabled(
isAnon ? this.anonUser : this.user,
this.config,
this.window
);
};
}
} );
QUnit.test( 'it should return false when sendBeacon isn\'t supported', function ( assert ) {
const window = {};
assert.notOk( isEnabled( this.user, this.config, window ),
'No sendBeacon. No logging.' );
assert.notOk( isEnabled( this.anonUser, this.config, window ),
'No sendBeacon. No logging for anons.' );
// ---
window.navigator = {
sendBeacon: 'NOT A FUNCTION'
};
assert.notOk( isEnabled( this.user, this.config, window ) );
} );
QUnit.test( 'it should respect PopupsEventLogging', function ( assert ) {
assert.ok( this.isEnabled( true ) );
assert.notOk( this.isEnabled(), 'but not for logged in users' );
this.config.set( 'wgPopupsEventLogging', false );
assert.notOk( this.isEnabled(), 'authenticated users are not logged' );
assert.notOk( this.isEnabled( true ), 'anons are not logged' );
} );
QUnit.test( 'it should respect the debug flag always', function ( assert ) {
this.config.set( 'wgPopupsEventLogging', false );
this.config.set( 'debug', false );
assert.notOk( this.isEnabled(), 'authenticated not logged' );
assert.notOk( this.isEnabled( true ), 'anons not logged' );
this.config.set( 'debug', true );
assert.ok( this.isEnabled(), 'authenticated users are logged!' );
assert.ok( this.isEnabled( true ) );
this.config.set( 'wgPopupsEventLogging', true );
} );