Files
cartodb/lib/assets/test/spec/builder/components/modals/add-widgets/body-view.spec.js
T
2020-06-15 10:58:47 +08:00

70 lines
2.1 KiB
JavaScript

var Backbone = require('backbone');
var BodyView = require('builder/components/modals/add-widgets/body-view');
var WidgetOptionModel = require('builder/components/modals/add-widgets/widget-option-model');
var widgetsTypes = require('builder/components/modals/add-widgets/widgets-types');
describe('components/modals/add-widgets/body-view', function () {
beforeEach(function () {
var layerDefinitionModel = new Backbone.Model();
layerDefinitionModel.getColor = function () { return '#fabada'; };
layerDefinitionModel.getName = function () { return 'layer'; };
layerDefinitionModel.getTableName = function () { return 'table_name'; };
var analysisDefinitionNodeModel = new Backbone.Model({
id: 'a1'
});
analysisDefinitionNodeModel.isSourceType = function () {
return true;
};
var tuples = [{
columnModel: new Backbone.Model(),
analysisDefinitionNodeModel: analysisDefinitionNodeModel,
layerDefinitionModel: layerDefinitionModel
}];
this.optionsCollection = new Backbone.Collection([
new WidgetOptionModel({
type: 'category',
layer_index: 0,
tuples: tuples
}),
new WidgetOptionModel({
type: 'histogram',
layer_index: 0,
tuples: tuples
}),
new WidgetOptionModel({
type: 'formula',
layer_index: 0,
tuples: tuples
}),
new WidgetOptionModel({
type: 'time-series',
layer_index: 0,
tuples: tuples
})
]);
this.view = new BodyView({
optionsCollection: this.optionsCollection,
widgetsTypes: widgetsTypes
});
this.view = this.view.render();
});
it('should have no leaks', function () {
expect(this.view).toHaveNoLeaks();
});
it('should render fine', function () {
expect(this.view).toBeDefined();
});
it('should create tab pane items when there is at least one option of that type', function () {
expect(this.view.$el.html()).toContain('formula');
expect(this.view.$el.html()).toContain('category');
expect(this.view.$el.html()).toContain('histogram');
expect(this.view.$el.html()).toContain('time-series');
});
});