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

Reply via email to