jenkins-bot has submitted this change and it was merged.
Change subject: Return null in SiteLinksChanger on remove
......................................................................
Return null in SiteLinksChanger on remove
Change-Id: I5034eb3a83c4aba7c402c24879c634cff1d30148
---
M view/resources/wikibase/entityChangers/SiteLinksChanger.js
M view/tests/qunit/wikibase/entityChangers/SiteLinksChanger.tests.js
2 files changed, 67 insertions(+), 12 deletions(-)
Approvals:
Thiemo Mättig (WMDE): Looks good to me, approved
jenkins-bot: Verified
diff --git a/view/resources/wikibase/entityChangers/SiteLinksChanger.js
b/view/resources/wikibase/entityChangers/SiteLinksChanger.js
index fe9a428..e7144ad 100644
--- a/view/resources/wikibase/entityChangers/SiteLinksChanger.js
+++ b/view/resources/wikibase/entityChangers/SiteLinksChanger.js
@@ -54,24 +54,26 @@
siteLink.getBadges()
)
.done( function( result ) {
- var siteId = siteLink.getSiteId(),
- resultData =
result.entity.sitelinks[siteId];
- var savedSiteLink = new wb.datamodel.SiteLink(
- siteId,
- resultData.title,
- resultData.badges
- );
+ var siteId = siteLink.getSiteId();
- // Update revision store:
- self._revisionStore.setSitelinksRevision(
- result.entity.lastrevid,
- siteLink.getSiteId()
- );
+ // Update revision store
+ self._revisionStore.setSitelinksRevision(
result.entity.lastrevid, siteId );
// FIXME: Maybe check API's return value?
// FIXME: Introduce Item.setSiteLinks
+ var resultData =
result.entity.sitelinks[siteId];
+ var savedSiteLink;
+ if ( resultData.removed === '' ) {
+ savedSiteLink = null;
+ } else {
+ savedSiteLink = new
wb.datamodel.SiteLink(
+ siteId,
+ resultData.title,
+ resultData.badges
+ );
+ }
deferred.resolve( savedSiteLink );
} )
.fail( function( errorCode, error ) {
diff --git a/view/tests/qunit/wikibase/entityChangers/SiteLinksChanger.tests.js
b/view/tests/qunit/wikibase/entityChangers/SiteLinksChanger.tests.js
index 28d1ecc..1184bc8 100644
--- a/view/tests/qunit/wikibase/entityChangers/SiteLinksChanger.tests.js
+++ b/view/tests/qunit/wikibase/entityChangers/SiteLinksChanger.tests.js
@@ -136,4 +136,57 @@
} );
} );
+ QUnit.test( 'setSiteLink performs correct API call for remove',
function( assert ) {
+ assert.expect( 1 );
+ var api = {
+ setSitelink: sinon.spy( function() {
+ return $.Deferred().promise();
+ } )
+ };
+ var siteLinksChanger = new SUBJECT(
+ api,
+ { getSitelinksRevision: function() { return 0; } },
+ new wb.datamodel.Item( 'Q1' )
+ );
+
+ siteLinksChanger.setSiteLink( new wb.datamodel.SiteLink(
'siteId', '' ) );
+
+ assert.ok( api.setSitelink.calledOnce );
+ } );
+
+ QUnit.test( 'setSiteLink correctly handles API response for remove',
function( assert ) {
+ assert.expect( 1 );
+ var api = {
+ setSitelink: sinon.spy( function() {
+ return $.Deferred().resolve( {
+ entity: {
+ sitelinks: {
+ siteId: {
+ title:
'pageName',
+ removed: ''
+ },
+ lastrevid: 'lastrevid'
+ }
+ }
+ } ).promise();
+ } )
+ };
+ var siteLinksChanger = new SUBJECT(
+ api,
+ { getSitelinksRevision: function() { return 0; },
setSitelinksRevision: function() {} },
+ new wb.datamodel.Item( 'Q1' )
+ );
+
+ QUnit.stop();
+
+ siteLinksChanger.setSiteLink( new wb.datamodel.SiteLink(
'siteId', '' ) )
+ .done( function( savedSiteLink ) {
+ QUnit.start();
+ assert.strictEqual( savedSiteLink, null );
+ } )
+ .fail( function() {
+ assert.ok( false, 'setSiteLink failed' );
+ } );
+ } );
+
} )( sinon, wikibase, jQuery );
--
To view, visit https://gerrit.wikimedia.org/r/297753
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I5034eb3a83c4aba7c402c24879c634cff1d30148
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Adrian Heine <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits