Reputation: 5088
Hi I am testing a collection using fetch, when I call it there is no answer from the fake server only after calling server.response I get the desired result.
Why is that ?
My code
beforeEach( function() {
server = sinon.fakeServer.create();
server.autoRespond = true;
colhedoraList = new ColhedoraList();
});
.
.
.
var spy = sinon.spy(colhedoraList, 'parse');
server.respondWith("GET", "getColhedoraInfo",
[200, {"Content-Type": "application/json"},
'[{"id":"1","talhaoAtual":1,"posicionamentos":[{"lat":-23.9317401,"lng":-50.2210379,"elevadorLigado":true,"horario":"2012-09-21T11:27:58Z"},{"lat":-23.931544,"lng":-50.2161884,"elevadorLigado":true,"horario":"2012-09-21T11:28:02Z"}]}]']);
colhedoraList.fetch({add: true});
server.respond();
expect(spy).toHaveBeenCalled();
expect(spygmaps).toHaveBeenCalledTwice();
expect(colhedoraList.get(1).get('talhaoAtual')).toEqual(1); <<< ALL EXPECTS FAIL, If I don't call respond().
Upvotes: 3
Views: 2036
Reputation: 3027
If you are using mock timers (sinon.useFakeTimers
) anywhere in the spec, that might stop the autoresponder from working. The addRequest
method creates a timeout inside which the request is actually responded to. The default wait time is 10ms.
Upvotes: 8