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 {
} );
} );
- 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();