SmartestVEGA
SmartestVEGA

Reputation: 8889

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.

Upvotes: 0

Views: 36

Answers (1)

lumio
lumio

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

Related Questions