LibreNMS/lib/typeahead/test/bloodhound/remote_spec.js

74 lines
1.8 KiB
JavaScript

describe('Remote', function() {
beforeEach(function() {
jasmine.Transport.useMock();
this.remote = new Remote({
url: '/test?q=%QUERY',
prepare: function(x) { return x; },
transform: function(x) { return x; }
});
this.transport = this.remote.transport;
});
describe('#cancelLastRequest', function() {
it('should cancel last request', function() {
this.remote.cancelLastRequest();
expect(this.transport.cancel).toHaveBeenCalled();
});
});
describe('#get', function() {
it('should have sensible default request settings', function() {
var spy;
spy = jasmine.createSpy();
spyOn(this.remote, 'prepare');
this.remote.get('foo', spy);
expect(this.remote.prepare).toHaveBeenCalledWith('foo', {
url: '/test?q=%QUERY',
type: 'GET',
dataType: 'json'
});
});
it('should transform request settings with prepare', function() {
var spy;
spy = jasmine.createSpy();
spyOn(this.remote, 'prepare').andReturn([{ foo: 'bar' }]);
this.remote.get('foo', spy);
expect(this.transport.get)
.toHaveBeenCalledWith([{ foo: 'bar' }], jasmine.any(Function));
});
it('should transform response with transform', function() {
var spy;
spy = jasmine.createSpy();
spyOn(this.remote, 'transform').andReturn([{ foo: 'bar' }]);
this.transport.get.andCallFake(function(_, cb) { cb(null, {}); });
this.remote.get('foo', spy);
expect(spy).toHaveBeenCalledWith([{ foo: 'bar' }]);
});
it('should return empty array on error', function() {
var spy;
spy = jasmine.createSpy();
this.transport.get.andCallFake(function(_, cb) { cb(true); });
this.remote.get('foo', spy);
expect(spy).toHaveBeenCalledWith([]);
});
});
});