Adrian Lang has uploaded a new change for review. https://gerrit.wikimedia.org/r/169706
Change subject: Add statementview tests ...................................................................... Add statementview tests Change-Id: I00ec7eadc4bd185a6f083485a28fc9b1ea478332 --- M lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js M lib/tests/qunit/jquery.wikibase/resources.php 2 files changed, 68 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/06/169706/1 diff --git a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js index f60b20d..49ffdd7 100644 --- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js +++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js @@ -3,7 +3,7 @@ * @author Adrian Lang <[email protected]> */ -( function( $, wb, QUnit ) { +( function( $, wb, QUnit, sinon ) { 'use strict'; /** @@ -13,7 +13,14 @@ */ var createStatementview = function( options, $node ) { options = $.extend( { - entityStore: 'i am an entity store', + entityChangersFactory: { + getReferencesChanger: function() { + return 'i am a references changer'; + } + }, + entityStore: { + get: function () { return $.Deferred().resolve().promise(); } + }, valueViewBuilder: 'i am a valueview builder', api: 'i am an api' }, options || {} ); @@ -42,7 +49,7 @@ } } ) ); -QUnit.test( 'Create & destroy', function( assert ) { +QUnit.test( 'Create & destroy without value', function( assert ) { var $statementview = createStatementview(), statementview = $statementview.data( 'statementview' ); @@ -59,4 +66,60 @@ ); } ); -}( jQuery, wikibase, QUnit ) ); +QUnit.test( 'Create & destroy with value', function( assert ) { + var $statementview = createStatementview( { + value: new wb.datamodel.Statement( + new wb.datamodel.Claim( new wb.datamodel.PropertyNoValueSnak( 'P1' ), null, 'guid' ), + new wb.datamodel.ReferenceList( [ new wb.datamodel.Reference() ] ) + ) + } ), + statementview = $statementview.data( 'statementview' ); + + assert.ok( + statementview !== 'undefined', + 'Created widget.' + ); + + statementview.destroy(); + + assert.ok( + $statementview.data( 'statementview' ) === undefined, + 'Destroyed widget.' + ); +} ); + +QUnit.test( 'isValid', function( assert ) { + var $statementview = createStatementview( { + value: new wb.datamodel.Statement( + new wb.datamodel.Claim( new wb.datamodel.PropertyNoValueSnak( 'P1' ), null, 'guid' ), + new wb.datamodel.ReferenceList( [ new wb.datamodel.Reference() ] ) + ) + } ), + statementview = $statementview.data( 'statementview' ); + + assert.ok( statementview.isValid(), 'isValid should return true' ); +} ); + +QUnit.test( 'remove', function( assert ) { + var referencesChanger = { + removeReference: sinon.spy( function() { return $.Deferred().resolve().promise(); } ) + }, + reference = new wb.datamodel.Reference(), + $statementview = createStatementview( { + value: new wb.datamodel.Statement( + new wb.datamodel.Claim( new wb.datamodel.PropertyNoValueSnak( 'P1' ), null, 'guid' ), + new wb.datamodel.ReferenceList( [ reference ] ) + ), + entityChangersFactory: { + getReferencesChanger: function() { + return referencesChanger; + } + } + } ), + statementview = $statementview.data( 'statementview' ); + + statementview.remove( $statementview.find( ':wikibase-referenceview' ).data( 'referenceview' ) ); + sinon.assert.calledWith( referencesChanger.removeReference, 'guid', reference ); +} ); + +}( jQuery, wikibase, QUnit, sinon ) ); diff --git a/lib/tests/qunit/jquery.wikibase/resources.php b/lib/tests/qunit/jquery.wikibase/resources.php index 2611044..3fb7dc6 100644 --- a/lib/tests/qunit/jquery.wikibase/resources.php +++ b/lib/tests/qunit/jquery.wikibase/resources.php @@ -164,6 +164,7 @@ 'jquery.valueview.ExpertStore', 'jquery.wikibase.referenceview', 'mediawiki.Title', + 'test.sinonjs', 'wikibase.datamodel', 'wikibase.store.FetchedContent', 'wikibase.ValueViewBuilder', -- To view, visit https://gerrit.wikimedia.org/r/169706 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I00ec7eadc4bd185a6f083485a28fc9b1ea478332 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Lang <[email protected]> _______________________________________________ MediaWiki-commits mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits
