From 0556614f18d461d13ec6c5a7d3af69033fd4b4e0 Mon Sep 17 00:00:00 2001 From: Matthias Mullie Date: Fri, 16 Dec 2016 08:30:43 +0100 Subject: [PATCH] mediawiki.api: Add test for api deferred rejection of errorformat!=bc Change-Id: Ia4e1d575e07df690919d63502f9fedffff7be0a3 --- resources/src/mediawiki/api.js | 2 ++ .../mediawiki.api/mediawiki.api.test.js | 16 +++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/resources/src/mediawiki/api.js b/resources/src/mediawiki/api.js index b9db0590ee..a174f58425 100644 --- a/resources/src/mediawiki/api.js +++ b/resources/src/mediawiki/api.js @@ -261,9 +261,11 @@ jqXHR ); } else if ( result.error ) { + // errorformat=bc code = result.error.code === undefined ? 'unknown' : result.error.code; apiDeferred.reject( code, result, result, jqXHR ); } else if ( result.errors ) { + // errorformat!=bc code = result.errors[ 0 ].code === undefined ? 'unknown' : result.errors[ 0 ].code; apiDeferred.reject( code, result, result, jqXHR ); } else { diff --git a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js index 3a959a35e8..6a00ac9b17 100644 --- a/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js +++ b/tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js @@ -44,7 +44,7 @@ } ); } ); - QUnit.test( 'API error', function ( assert ) { + QUnit.test( 'API error errorformat=bc', function ( assert ) { var api = new mw.Api(); this.server.respond( [ 200, { 'Content-Type': 'application/json' }, @@ -58,6 +58,20 @@ .always( assert.async() ); } ); + QUnit.test( 'API error errorformat!=bc', function ( assert ) { + var api = new mw.Api(); + + this.server.respond( [ 200, { 'Content-Type': 'application/json' }, + '{ "errors": [ { "code": "unknown_action", "key": "unknown-error", "params": [] } ] }' + ] ); + + api.get( { action: 'doesntexist' } ) + .fail( function ( errorCode ) { + assert.equal( errorCode, 'unknown_action', 'API error should reject the deferred' ); + } ) + .always( assert.async() ); + } ); + QUnit.test( 'FormData support', function ( assert ) { var api = new mw.Api(); -- 2.20.1