mediawiki-extensions-Revisi.../tests/qunit/RevisionSlider.Revision.test.js
Leszek Manicki 8e7fe2434d Add eslint, to be used instead of jscs and/or jshint
First I jumped on replacing both jscs and jshint with eslint but
it might be premature decision. Although linting with eslint
is possible (like in there is wikimedia config for eslint)
it is still not clear should it

But in case the change happens we will be ready.

Apart from config stuff this changes few bits spotted by eslint:
improves some indentation, removes weird spaces, completes some
doc blocks, changes IIFE forms in tests. These changes do not
seem controversial.

Change-Id: I9f8bf0f5745da8e662685f4cd879ea4baa609c01
2016-09-05 09:47:11 +02:00

112 lines
3 KiB
JavaScript

( function ( mw ) {
var Revision = mw.libs.revisionSlider.Revision;
QUnit.module( 'ext.RevisionSlider.Revision' );
QUnit.test( 'create Revision', function ( assert ) {
var data = {
size: 5,
comment: 'hello',
parsedcomment: '<b>hello</b>',
timestamp: '2016-04-26T10:27:14Z', // 10:27, 26 Apr 2016
user: 'meh',
userGender: 'female'
},
rev = new Revision( data );
mw.libs.revisionSlider.userOffset = 0;
assert.equal( rev.getSize(), data.size );
assert.equal( rev.getComment(), data.comment );
assert.equal( rev.getParsedComment(), data.parsedcomment );
assert.equal( rev.getUser(), data.user );
assert.equal( rev.getUserGender(), 'female' );
assert.equal( rev.isMinor(), false );
if ( mw.config.get( 'wgUserLanguage' ) === 'en' ) {
assert.equal( rev.getFormattedDate(), '26 April 2016 10:27 AM' );
}
} );
QUnit.test( 'isMinor with minor empty string', function ( assert ) {
var rev = new Revision( {
minor: ''
} );
assert.equal( rev.isMinor(), true );
} );
QUnit.test( 'isMinor with minor true', function ( assert ) {
var rev = new Revision( {
minor: true
} );
assert.equal( rev.isMinor(), true );
} );
QUnit.test( 'get and set relative size', function ( assert ) {
var size = 5,
rev = new Revision( {} );
rev.setRelativeSize( size );
assert.equal( rev.getRelativeSize(), size );
} );
QUnit.revisionSlider.testOrSkip( 'getFormattedDate, offset: 0', function ( assert ) {
var rev = new Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
mw.libs.revisionSlider.userOffset = 0;
assert.equal( rev.getFormattedDate(), '26 April 2016 10:27 AM' );
}, mw.config.get( 'wgUserLanguage' ) !== 'en' );
QUnit.revisionSlider.testOrSkip( 'getFormattedDate, offset: 120 (treat as hours, +2h)', function ( assert ) {
var rev = new Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
// Berlin = 120
mw.libs.revisionSlider.userOffset = 120;
assert.equal( rev.getFormattedDate(), '26 April 2016 12:27 PM' );
}, mw.config.get( 'wgUserLanguage' ) !== 'en' );
QUnit.revisionSlider.testOrSkip( 'getFormattedDate, negative offset: -420 (treat as hours, -7h)', function ( assert ) {
var rev = new Revision( {
timestamp: '2016-04-26T10:27:14Z' // 10:27, 26 Apr 2016
} );
// San Francisco = -420
mw.libs.revisionSlider.userOffset = -420;
assert.equal( rev.getFormattedDate(), '26 April 2016 3:27 AM' );
}, mw.config.get( 'wgUserLanguage' ) !== 'en' );
QUnit.test( 'hasEmptyComment comment with whitespaces', function ( assert ) {
var rev = new Revision( {
comment: ' '
} );
assert.ok( rev.hasEmptyComment() );
} );
QUnit.test( 'hasEmptyComment comment with chars', function ( assert ) {
var rev = new Revision( {
comment: ' comment '
} );
assert.notOk( rev.hasEmptyComment() );
} );
QUnit.test( 'hasEmptyComment comment with unicode chars', function ( assert ) {
var rev = new Revision( {
comment: 'ברוכים'
} );
assert.notOk( rev.hasEmptyComment() );
} );
}( mediaWiki ) );