jenkins-bot has submitted this change and it was merged.
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(-)
Approvals:
Adrian Lang: Looks good to me, approved
jenkins-bot: Verified
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 < [email protected] >
*/
-( 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: merged
Gerrit-Change-Id: I63fa416beaad65a5d71ad739e8c18fc274788166
Gerrit-PatchSet: 3
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Henning Snater <[email protected]>
Gerrit-Reviewer: Adrian Lang <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits