62 lines
1.7 KiB
JavaScript
62 lines
1.7 KiB
JavaScript
|
describe('StubTracker', function() {
|
||
|
beforeEach(function() {
|
||
|
var Constructor = getJasmineRequireObj().AjaxStubTracker();
|
||
|
this.tracker = new Constructor();
|
||
|
});
|
||
|
|
||
|
it('finds nothing if no stubs are added', function() {
|
||
|
expect(this.tracker.findStub()).toBeUndefined();
|
||
|
});
|
||
|
|
||
|
it('finds an added stub', function() {
|
||
|
var stub = { matches: function() { return true; } };
|
||
|
this.tracker.addStub(stub);
|
||
|
|
||
|
expect(this.tracker.findStub()).toBe(stub);
|
||
|
});
|
||
|
|
||
|
it('skips an added stub that does not match', function() {
|
||
|
var stub = { matches: function() { return false; } };
|
||
|
this.tracker.addStub(stub);
|
||
|
|
||
|
expect(this.tracker.findStub()).toBeUndefined();
|
||
|
});
|
||
|
|
||
|
it('passes url, data, and method to the stub', function() {
|
||
|
var stub = { matches: jasmine.createSpy('matches') };
|
||
|
this.tracker.addStub(stub);
|
||
|
|
||
|
this.tracker.findStub('url', 'data', 'method');
|
||
|
|
||
|
expect(stub.matches).toHaveBeenCalledWith('url', 'data', 'method');
|
||
|
});
|
||
|
|
||
|
it('can clear out all stubs', function() {
|
||
|
var stub = { matches: jasmine.createSpy('matches') };
|
||
|
this.tracker.addStub(stub);
|
||
|
|
||
|
this.tracker.findStub();
|
||
|
|
||
|
expect(stub.matches).toHaveBeenCalled();
|
||
|
|
||
|
this.tracker.reset();
|
||
|
stub.matches.calls.reset();
|
||
|
|
||
|
this.tracker.findStub();
|
||
|
|
||
|
expect(stub.matches).not.toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it('uses the most recently added stub that matches', function() {
|
||
|
var stub1 = { matches: function() { return true; } };
|
||
|
var stub2 = { matches: function() { return true; } };
|
||
|
var stub3 = { matches: function() { return false; } };
|
||
|
|
||
|
this.tracker.addStub(stub1);
|
||
|
this.tracker.addStub(stub2);
|
||
|
this.tracker.addStub(stub3);
|
||
|
|
||
|
expect(this.tracker.findStub()).toBe(stub2);
|
||
|
});
|
||
|
});
|