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

Reply via email to