jenkins-bot has submitted this change and it was merged. 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, 75 insertions(+), 4 deletions(-) Approvals: Henning Snater: Looks good to me, approved jenkins-bot: Verified 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 45e32ec..1928dd4 100644 --- a/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js +++ b/lib/tests/qunit/jquery.wikibase/jquery.wikibase.statementview.tests.js @@ -2,7 +2,7 @@ * @licence GNU GPL v2+ * @author Adrian Lang <adrian.l...@wikimedia.de> */ -( function( $, QUnit ) { +( function( $, wb, QUnit, sinon ) { 'use strict'; /** @@ -12,7 +12,9 @@ */ var createStatementview = function( options, $node ) { options = $.extend( { - entityStore: 'i am an entity store', + entityStore: { + get: function () { return $.Deferred().resolve().promise(); } + }, valueViewBuilder: 'i am a valueview builder', claimsChanger: 'I am a ClaimsChanger', entityChangersFactory: { @@ -45,7 +47,7 @@ } } ) ); -QUnit.test( 'Create & destroy', function( assert ) { +QUnit.test( 'Create & destroy without value', function( assert ) { var $statementview = createStatementview(), statementview = $statementview.data( 'statementview' ); @@ -62,4 +64,71 @@ ); } ); -}( jQuery, 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 ef6c107..be81ed8 100644 --- a/lib/tests/qunit/jquery.wikibase/resources.php +++ b/lib/tests/qunit/jquery.wikibase/resources.php @@ -259,6 +259,8 @@ ), 'dependencies' => array( 'jquery.wikibase.statementview', + 'test.sinonjs', + 'wikibase.datamodel', ), ), -- To view, visit https://gerrit.wikimedia.org/r/169706 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I00ec7eadc4bd185a6f083485a28fc9b1ea478332 Gerrit-PatchSet: 9 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Adrian Lang <adrian.l...@wikimedia.de> Gerrit-Reviewer: Henning Snater <henning.sna...@wikimedia.de> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits