Merge "mediawiki.api: Add test for api deferred rejection of errorformat!=bc"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Sat, 17 Dec 2016 01:57:58 +0000 (01:57 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Sat, 17 Dec 2016 01:57:58 +0000 (01:57 +0000)
resources/src/mediawiki/api.js
tests/qunit/suites/resources/mediawiki.api/mediawiki.api.test.js

index b9db059..a174f58 100644 (file)
                                                        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 {
index 3a959a3..6a00ac9 100644 (file)
@@ -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' },
                        .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();