Initial commit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
var GeocodingModel = require('dashboard/data/background-polling/geocoding-model');
|
||||
const configModel = require('fixtures/dashboard/config-model.fixture');
|
||||
|
||||
describe('common/background_polling/geocoding_model', function () {
|
||||
beforeEach(function () {
|
||||
GeocodingModel.prototype.sync = function (a, b, opts) {
|
||||
opts.success();
|
||||
};
|
||||
this.model = new GeocodingModel({ configModel });
|
||||
spyOn(this.model, 'bind').and.callThrough();
|
||||
});
|
||||
|
||||
it('should not start polling when option is not enabled', function () {
|
||||
spyOn(this.model, 'fetch');
|
||||
this.model.options.startPollingAutomatically = false;
|
||||
this.model.set('id', 1);
|
||||
this.model.initialize({ configModel });
|
||||
expect(this.model.fetch).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should save model when it is new', function () {
|
||||
spyOn(this.model, 'save');
|
||||
this.model._checkModel();
|
||||
expect(this.model.save).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should have several change binds', function () {
|
||||
this.model._initBinds();
|
||||
expect(this.model.bind.calls.argsFor(0)[0]).toEqual('change:id');
|
||||
});
|
||||
|
||||
describe('.pollCheck', function () {
|
||||
beforeEach(function () {
|
||||
jasmine.clock().install();
|
||||
spyOn(this.model, 'fetch');
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
jasmine.clock().uninstall();
|
||||
});
|
||||
|
||||
it('should start polling', function () {
|
||||
spyOn(this.model.poller, 'start');
|
||||
|
||||
this.model.pollCheck();
|
||||
|
||||
expect(this.model.poller.start).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe('.destroyCheck', function () {
|
||||
beforeEach(function () {
|
||||
jasmine.clock().install();
|
||||
spyOn(this.model, 'fetch');
|
||||
});
|
||||
|
||||
afterEach(function () {
|
||||
jasmine.clock().uninstall();
|
||||
});
|
||||
|
||||
it('should stop polling', function () {
|
||||
spyOn(this.model.poller, 'stop');
|
||||
|
||||
this.model.pollCheck();
|
||||
this.model.destroyCheck();
|
||||
|
||||
expect(this.model.poller.stop).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
it('should know when geocoding has finished', function () {
|
||||
expect(this.model.hasCompleted()).toBeFalsy();
|
||||
this.model.set('state', 'finished');
|
||||
expect(this.model.hasCompleted()).toBeTruthy();
|
||||
this.model.set('state', 'geocoding');
|
||||
expect(this.model.hasCompleted()).toBeFalsy();
|
||||
});
|
||||
|
||||
it('should know when geocoding has failed', function () {
|
||||
expect(this.model.hasFailed()).toBeFalsy();
|
||||
this.model.set('state', 'failed');
|
||||
expect(this.model.hasFailed()).toBeTruthy();
|
||||
this.model.set('state', 'geocoding');
|
||||
expect(this.model.hasFailed()).toBeFalsy();
|
||||
this.model.set('state', 'reset');
|
||||
expect(this.model.hasFailed()).toBeTruthy();
|
||||
this.model.set('state', 'cancelled');
|
||||
expect(this.model.hasFailed()).toBeTruthy();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user