jenkins-bot has submitted this change and it was merged. (
https://gerrit.wikimedia.org/r/372132 )
Change subject: Port RepresentationWidget tests to jasmine.
......................................................................
Port RepresentationWidget tests to jasmine.
Change-Id: Ia76e8af2a9a70119882a890e06c95eee23ac159a
---
M package.json
A tests/jasmine/RepresentationWidget.spec.js
2 files changed, 98 insertions(+), 1 deletion(-)
Approvals:
Jonas Kress (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/package.json b/package.json
index 10284e6..9885f56 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
"vue": "2.3.3"
},
"_moduleAliases": {
- "wikibase.lexeme.widgets.GlossWidget": "./resources/widgets/GlossWidget.js"
+ "wikibase.lexeme.widgets.GlossWidget":
"./resources/widgets/GlossWidget.js",
+ "wikibase.lexeme.widgets.RepresentationWidget":
"./resources/widgets/RepresentationWidget.js"
}
}
diff --git a/tests/jasmine/RepresentationWidget.spec.js
b/tests/jasmine/RepresentationWidget.spec.js
new file mode 100644
index 0000000..3ed9e7b
--- /dev/null
+++ b/tests/jasmine/RepresentationWidget.spec.js
@@ -0,0 +1,96 @@
+describe( 'wikibase.lexeme.widgets.RepresentationWidget', function () {
+ var expect = require( 'unexpected' ).clone();
+ var RepresentationWidget = require(
'wikibase.lexeme.widgets.RepresentationWidget' );
+
+ var EMPTY_REPRESENTATION = { language: '', value: '' };
+ var SOME_REPRESENTATION = { language: 'en', value: 'representation in
english' };
+
+ it( 'adds a new empty representation when editing the widget with no
representations', function () {
+ var widget = newWidget( [] );
+
+ widget.edit();
+
+ expect( widget.representations, 'to equal', [
EMPTY_REPRESENTATION ] );
+ } );
+
+ it( 'shows only the representation it contains when editing the widget
with some representation', function () {
+ var widget = newWidget( [ SOME_REPRESENTATION ] );
+
+ widget.edit();
+
+ expect( widget.representations, 'to equal', [
SOME_REPRESENTATION ] );
+ } );
+
+ it( 'is not in edit mode after being created', function () {
+ var widget = newWidget( [] );
+
+ expect( widget.inEditMode, 'to be', false );
+ } );
+
+ it( 'switches to edit mode when editing', function () {
+ var widget = newWidget( [] );
+
+ widget.edit();
+
+ expect( widget.inEditMode, 'to be', true );
+ } );
+
+ it( 'is not in edit mode after editing is stopped', function () {
+ var widget = newWidget( [] );
+
+ widget.edit();
+ widget.stopEditing();
+
+ expect( widget.inEditMode, 'to be', false );
+ } );
+
+ it( 'adds an empty representation on add', function () {
+ var widget = newWidget(
+ [ SOME_REPRESENTATION ]
+ );
+
+ widget.edit();
+ widget.add();
+
+ expect( widget.representations[ 1 ], 'to equal',
EMPTY_REPRESENTATION );
+ } );
+
+ it( 'can remove a representation', function () {
+ var widget = newWidget(
+ [ SOME_REPRESENTATION ]
+ );
+
+ widget.edit();
+ widget.remove( SOME_REPRESENTATION );
+
+ expect( widget.representations, 'to equal', [] );
+ } );
+
+ it( 'cannot add representation if not in edit mode', function () {
+ var widget = newWidget( [] );
+
+ expect( function () {
+ widget.add();
+ }, 'to throw' );
+ } );
+
+ it( 'cannot remove representation if not in edit mode', function () {
+ var widget = newWidget(
+ [ SOME_REPRESENTATION ]
+ );
+
+ expect( function () {
+ widget.remove( SOME_REPRESENTATION );
+ }, 'to throw' );
+ } );
+
+ function newWidget( representations ) {
+ return RepresentationWidget.create(
+ representations,
+ document.createElement( 'div' ),
+ '<div id="dummy-template"></div>',
+ function () {
+ }
+ );
+ }
+} );
--
To view, visit https://gerrit.wikimedia.org/r/372132
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: Ia76e8af2a9a70119882a890e06c95eee23ac159a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/WikibaseLexeme
Gerrit-Branch: master
Gerrit-Owner: Jakob <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits