Can't get $.ajax.mostRecentCall to work with jasmine 2.0.2
Asked Answered
S

1

12

Having real trouble getting a simple example to work. I am using this example taken from https://gist.github.com/Madhuka/7854709

describe("Test for spies", function() {
 function sendRequest(callbacks, configuration) {
        $.ajax({
            url: configuration.url,
            dataType: "json",
            success: function(data) {
                callbacks.checkForInformation(data);
            },
            error: function(data) {
                callbacks.displayErrorMessage();
            },
            timeout: configuration.remainingCallTime
        });
    }

    it("should make an Ajax request to the correct URL", function() {

    var configuration = {
        url : "http://www.google.com",
        remainingCallTime : 30000
    };

        spyOn($, "ajax");

        sendRequest(undefined, configuration);
        expect($.ajax.mostRecentCall.args[0]["url"]).toEqual(configuration.url);
    });
});

For whatever reason, $.ajax.mostRecentCall is undefined.

Using jasmine 2.0.2 and jasmine jquery 2.0.5.

Fiddle here: http://jsfiddle.net/sidouglas/85b35993/

Stereochromy answered 2/12, 2014 at 0:21 Comment(0)
A
24

This the old 1.x Jasmine syntax:

$.ajax.mostRecentCall.args

The syntax for Jasmine 2 is:

$.ajax.calls.mostRecent().args

So your assertion should be:

expect($.ajax.calls.mostRecent().args[0]["url"]).toEqual(configuration.url);
Allopathy answered 4/12, 2014 at 9:53 Comment(1)
Thank you for taking the time to answer this question.Stereochromy

© 2022 - 2024 — McMap. All rights reserved.