Describe init method behaviour via QUnit tests

Change-Id: I78c4a4ac7b653e31ce52104cbdaef3d6390b2e20
This commit is contained in:
jdlrobson 2016-05-12 16:22:59 -07:00
parent 27d811a173
commit ed3500b1bd

View file

@ -3,6 +3,7 @@
QUnit.module( 'ext.popups.renderer.renderers.article', { QUnit.module( 'ext.popups.renderer.renderers.article', {
setup: function () { setup: function () {
mw.popups.render.cache[ '/wiki/Kittens' ] = {}; mw.popups.render.cache[ '/wiki/Kittens' ] = {};
this.sandbox.stub( mw.popups, 'getTitle' ).returns( 'Kittens' );
this.pageInfo = { this.pageInfo = {
thumbnail: { thumbnail: {
source: 'http://commons.wikimedia.org/kittypic.svg', source: 'http://commons.wikimedia.org/kittypic.svg',
@ -15,6 +16,16 @@
pagelanguagehtmlcode: 'en', pagelanguagehtmlcode: 'en',
pagelanguagedir: 'ltr' pagelanguagedir: 'ltr'
}; };
this.kittenResponse = {
query: {
pages: [
this.pageInfo
]
}
};
this.apiStub = this.sandbox.stub( mw.popups.api, 'get' ).returns(
$.Deferred().resolve( this.kittenResponse )
);
} }
} ); } );
@ -198,4 +209,19 @@
'thumbnail information got cached' ); 'thumbnail information got cached' );
} ); } );
QUnit.asyncTest( 'render.article.init', function ( assert ) {
var $kittyLink = $( '<a href="/wiki/Kittens">' ),
apiStub = this.apiStub;
QUnit.expect( 2 );
mw.popups.render.renderers.article.init( $kittyLink );
mw.popups.render.renderers.article.init( $kittyLink ).done( function () {
var cache = mw.popups.render.cache[ '/wiki/Kittens' ];
QUnit.start();
assert.ok( cache.popup.length, 'The popup is stored in cache.' );
assert.ok( apiStub.calledTwice,
'This method in current form is dumb and if called more than once will not load from cache.' );
} );
} );
} )( jQuery, mediaWiki ); } )( jQuery, mediaWiki );