Reputation: 8889
I am trying to write unit test cases, for web API call.
Which shows success below :
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.
Upvotes: 0
Views: 36
Reputation: 7575
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.
Upvotes: 1