var _ = require('underscore'); var Backbone = require('backbone'); var DatasetView = require('builder/dataset/dataset-view'); var ConfigModel = require('builder/data/config-model'); var UserModel = require('builder/data/user-model'); var AnalysisDefinitionNodeSourceModel = require('builder/data/analysis-definition-node-source-model'); var AnalysisDefinitionNodesCollection = require('builder/data/analysis-definition-nodes-collection'); describe('dataset/dataset-view', function () { beforeEach(function () { var configModel = new ConfigModel({ base_url: '/u/pepe', user_name: 'pepe' }); var visModel = new Backbone.Model({ privacy: 'public' }); visModel.isVisualization = function () {}; visModel.privacyOptions = function () {}; var tableModel = new Backbone.Model(); tableModel.getSyncModel = function () {}; tableModel.isOwner = function () {}; tableModel.getUnqualifiedName = function () {}; tableModel.isSync = function () {}; tableModel.getSyncModel = function () { return new Backbone.Model(); }; tableModel._permissionModel = { isOwner: function () {}, hasWriteAccess: function () {} }; var userModel = new UserModel({ username: 'pepe', actions: { private_tables: true } }, { configModel: configModel }); var analysisDefinitionNodeModel = new AnalysisDefinitionNodeSourceModel({ query: 'select * from table_1', table_name: 'table_1', id: 'dummy-id', type: 'source' }, { tableData: { permission: { owner: { username: 'pepe' } }, synchronization: {} }, configModel: configModel, userModel: userModel }); this.analysisDefinitionNodesCollection = new AnalysisDefinitionNodesCollection([analysisDefinitionNodeModel], { configModel: configModel, userModel: userModel }); this.editorModel = new Backbone.Model(); this.editorModel.isEditing = function () {}; this.editorModel.isDisabled = function () {}; this.view = new DatasetView({ router: {}, modals: {}, editorModel: this.editorModel, configModel: configModel, userModel: userModel, visModel: visModel, analysisDefinitionNodeModel: analysisDefinitionNodeModel, layerDefinitionModel: {} }); }); afterEach(function () { this.view.clean(); }); describe('.render', function () { it('should render properly', function () { spyOn(this.view, '_initViews'); this.view.render(); expect(this.view.$el.html()).toContain('
'); expect(this.view.$el.html()).toContain('
'); expect(this.view.$el.html()).toContain('
'); expect(this.view.$el.html()).toContain('
'); expect(this.view.$el.html()).toContain('