SmartestVEGA SmartestVEGA - 8 months ago 33
Ajax Question

Unit Test are not failing

I am trying to write unit test cases, for web API call.

Which shows success below :

Success Unit Test (jsfiddle)

getProduct("jsonp","https://maps.googleapis.com/maps/api/e


Error Unit Test (jsfiddle) But still its shows "pass"

getProduct("jsonp","https://sdfsdfdfmaps.googleapis.com/maps/api/e


Previous right webapi url : https://maps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

Wrong wepapi url : https://sdfsdfdfmaps.googleapis.com/maps/api/elevation/json?locations=39.7391536,-104.9847034&key

Even though the wepapi url is wrong. Test is passing.

Answer Source

Remove the spy function and add a fail callback which raises an error if the ajax call failed like so:

function getProduct(dataType,serviceURL,langCode ,callback) {
    $.ajax({
        type: 'GET',
        dataType: dataType,
        url: serviceURL + langCode,
        success: callback,
        fail: () => { throw new Error( 'failed' ); },
    });
}

See this fiddle here.

But this causes an actual call. To prevent the call from happening, use your spy function and parse the URL argument like in this fiddle here.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download