Henning Snater has uploaded a new change for review. https://gerrit.wikimedia.org/r/186959
Change subject: Added snakview.value() QUnit tests ...................................................................... Added snakview.value() QUnit tests As there is no use in returning "datavalue: null" in the Value variation, the "datavalue" field is not returned at all anymore in order to achieve consistency of setting and getting the snakview's value. Change-Id: I63fa416beaad65a5d71ad739e8c18fc274788166 --- M lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js M lib/tests/qunit/jquery.wikibase/snakview/resources.php M lib/tests/qunit/jquery.wikibase/snakview/snakview.tests.js 3 files changed, 61 insertions(+), 10 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/59/186959/1 diff --git a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js index e88f116..a4a6c72 100644 --- a/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js +++ b/lib/resources/jquery.wikibase/snakview/snakview.variations.Value.js @@ -70,10 +70,7 @@ dataValue = this._valueView.value(); } - return { - // null if no value yet or if value with no suitable valueview for - datavalue: dataValue - }; + return !dataValue ? {} : { datavalue: dataValue }; }, /** diff --git a/lib/tests/qunit/jquery.wikibase/snakview/resources.php b/lib/tests/qunit/jquery.wikibase/snakview/resources.php index 5d5a314..d3cf6d0 100644 --- a/lib/tests/qunit/jquery.wikibase/snakview/resources.php +++ b/lib/tests/qunit/jquery.wikibase/snakview/resources.php @@ -22,10 +22,14 @@ 'snakview.tests.js', ), 'dependencies' => array( + 'dataTypes.DataTypeStore', 'jquery.wikibase.snakview', 'mediawiki.Title', 'wikibase.datamodel.Fingerprint', 'wikibase.datamodel.Property', + 'wikibase.datamodel.PropertyNoValueSnak', + 'wikibase.datamodel.PropertySomeValueSnak', + 'wikibase.datamodel.PropertyValueSnak', 'wikibase.datamodel.Term', 'wikibase.datamodel.TermMap', 'wikibase.serialization.SnakSerializer', diff --git a/lib/tests/qunit/jquery.wikibase/snakview/snakview.tests.js b/lib/tests/qunit/jquery.wikibase/snakview/snakview.tests.js index e0443e2..b8b83c4 100644 --- a/lib/tests/qunit/jquery.wikibase/snakview/snakview.tests.js +++ b/lib/tests/qunit/jquery.wikibase/snakview/snakview.tests.js @@ -2,7 +2,7 @@ * @licence GNU GPL v2+ * @author H. Snater < mediaw...@snater.com > */ -( function( $, QUnit, wb, mw ) { +( function( $, QUnit, wb, dt, mw ) { 'use strict'; QUnit.module( 'jquery.wikibase.snakview', QUnit.newMwEnvironment( { @@ -35,6 +35,8 @@ } }; +var snakSerializer = new wb.serialization.SnakSerializer(); + /** * @param {Object} [options={}] * @param {jQuery} [$node] @@ -44,7 +46,7 @@ options = $.extend( { entityStore: entityStore, valueViewBuilder: 'I am a ValueViewBuilder', - dataTypeStore: 'I am a DataTypeStore' + dataTypeStore: new dt.DataTypeStore() }, options || {} ); $node = $node || $( '<div/>' ).appendTo( 'body' ); @@ -88,9 +90,7 @@ ); $snakview = createSnakview( { - value: ( new wb.serialization.SnakSerializer() ).serialize( - new wb.datamodel.PropertyNoValueSnak( 'P1' ) - ) + value: snakSerializer.serialize( new wb.datamodel.PropertyNoValueSnak( 'P1' ) ) } ); snakview = $snakview.data( 'snakview' ); @@ -107,4 +107,54 @@ ); } ); -}( jQuery, QUnit, wikibase, mediaWiki ) ); +QUnit.test( 'value()', function( assert ) { + var $snakview = createSnakview(), + snakview = $snakview.data( 'snakview' ); + + assert.deepEqual( + snakview.value(), + { + property: null, + snaktype: wb.datamodel.PropertyValueSnak.TYPE + }, + 'Verified default value.' + ); + + var newValue = { + property: 'P1', + snaktype: wb.datamodel.PropertySomeValueSnak.TYPE + }; + + snakview.value( newValue ); + + assert.deepEqual( + snakview.value(), + newValue, + 'Set Snak serialization value.' + ); + + newValue = new wb.datamodel.PropertyNoValueSnak( 'P1' ); + + snakview.value( newValue ); + + assert.deepEqual( + snakview.value(), + snakSerializer.serialize( newValue ), + 'Set wikibase.datamodel.Snak value.' + ); + + newValue = { + property: 'P1', + snaktype: wb.datamodel.PropertyValueSnak.TYPE + }; + + snakview.value( newValue ); + + assert.deepEqual( + snakview.value(), + newValue, + 'Set incomplete Snak serialization value.' + ); +} ); + +}( jQuery, QUnit, wikibase, dataTypes, mediaWiki ) ); -- To view, visit https://gerrit.wikimedia.org/r/186959 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I63fa416beaad65a5d71ad739e8c18fc274788166 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Henning Snater <henning.sna...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits