Initial commit
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
var Backbone = require('backbone');
|
||||
var $ = require('jquery');
|
||||
var UserModel = require('builder/data/user-model');
|
||||
var TableModel = require('builder/data/table-model');
|
||||
var BackgroundPollingModel = require('builder/data/editor-background-polling-model');
|
||||
var ImportsCollection = require('builder/data/background-importer/background-importer-imports-collection');
|
||||
var UserActions = require('builder/data/user-actions');
|
||||
|
||||
describe('builder/data/editor-background-polling-model', function () {
|
||||
beforeEach(function () {
|
||||
var configModel = new Backbone.Model();
|
||||
configModel.urlVersion = function () {};
|
||||
|
||||
spyOn($, 'ajax').and.callFake(function (req) {
|
||||
var d = $.Deferred();
|
||||
d.resolve();
|
||||
return d.promise();
|
||||
});
|
||||
|
||||
var userModel = new UserModel({
|
||||
username: 'pepe'
|
||||
}, {
|
||||
configModel: configModel
|
||||
});
|
||||
this.importsCollection = new ImportsCollection(undefined, {
|
||||
userModel: userModel,
|
||||
configModel: configModel
|
||||
});
|
||||
|
||||
spyOn(TableModel.prototype, 'fetch').and.callThrough();
|
||||
|
||||
this.userActions = UserActions({
|
||||
userModel: {},
|
||||
analysisDefinitionNodesCollection: {},
|
||||
analysisDefinitionsCollection: {},
|
||||
layerDefinitionsCollection: {},
|
||||
widgetDefinitionsCollection: {}
|
||||
});
|
||||
spyOn(this.userActions, 'createLayerFromTable');
|
||||
|
||||
this.model = new BackgroundPollingModel({}, {
|
||||
userModel: userModel,
|
||||
configModel: configModel,
|
||||
vis: new Backbone.Model({}),
|
||||
importsCollection: this.importsCollection,
|
||||
userActions: this.userActions
|
||||
});
|
||||
});
|
||||
|
||||
describe('when an imports completes', function () {
|
||||
beforeEach(function () {
|
||||
this.importsCollection.reset({});
|
||||
this.importsModel = this.importsCollection.at(0);
|
||||
this.importsModel.set({
|
||||
step: 'import'
|
||||
});
|
||||
});
|
||||
|
||||
it('should fetch table data', function () {
|
||||
this.importsModel._importModel.set({
|
||||
state: 'complete',
|
||||
table_name: 'tableName'
|
||||
});
|
||||
expect(TableModel.prototype.fetch).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
describe('when table is fetched', function () {
|
||||
it('should trigger the "importCompleted" event', function () {
|
||||
var callback = jasmine.createSpy('callback');
|
||||
this.model.bind('importCompleted', callback);
|
||||
|
||||
this.importsModel._importModel.set({
|
||||
state: 'complete',
|
||||
table_name: 'tableName'
|
||||
});
|
||||
|
||||
expect(callback).toHaveBeenCalledWith(this.importsModel, this.model);
|
||||
});
|
||||
|
||||
it('should add a new layer definition to the collection', function () {
|
||||
this.importsModel._importModel.set({
|
||||
state: 'complete',
|
||||
table_name: 'tableName'
|
||||
});
|
||||
|
||||
expect(this.userActions.createLayerFromTable).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user