mediawiki-extensions-Multim.../tests/qunit/mmv/logging/mmv.logging.ActionLogger.test.js
Ed Sanders b46529d1b2 build: Introduce jshint & jscs and make a pass
These replace the hard-coded jshint task in CI.

Change-Id: Id14eec1ecba4ceae735ffd10f9114233a580302f
2016-07-19 13:48:06 -07:00

43 lines
1.5 KiB
JavaScript

( function ( mw, $ ) {
QUnit.module( 'mmv.logging.ActionLogger', QUnit.newMwEnvironment() );
QUnit.test( 'log()', 6, function ( assert ) {
var fakeEventLog = { logEvent: this.sandbox.stub() },
logger = new mw.mmv.logging.ActionLogger(),
action1key = 'test-1',
action1value = 'Test',
action2key = 'test-2',
action2value = 'Foo $1 $2 bar',
unknownAction = 'test-3';
this.sandbox.stub( logger, 'loadDependencies' ).returns( $.Deferred().resolve() );
this.sandbox.stub( mw, 'log' );
logger.samplingFactorMap = { 'default': 1 };
logger.setEventLog( fakeEventLog );
logger.logActions = {};
logger.logActions[ action1key ] = action1value;
logger.logActions[ action2key ] = action2value;
logger.log( unknownAction );
assert.strictEqual( mw.log.lastCall.args[ 0 ], unknownAction, 'Log message defaults to unknown key' );
assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' );
mw.log.reset();
fakeEventLog.logEvent.reset();
logger.log( action1key );
assert.strictEqual( mw.log.lastCall.args[ 0 ], action1value, 'Log message is translated to its text' );
assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' );
mw.log.reset();
fakeEventLog.logEvent.reset();
logger.samplingFactorMap = { 'default': 0 };
logger.log( action1key, true );
assert.ok( !mw.log.called, 'No logging when disabled' );
assert.ok( fakeEventLog.logEvent.called, 'event log has been recorded' );
} );
}( mediaWiki, jQuery ) );