cartodb/lib/assets/test/spec/builder/components/modals/remove-layer/delete-layer-confirmation-view.spec.js
2020-06-15 10:58:47 +08:00

153 lines
4.9 KiB
JavaScript

var _ = require('underscore');
var Backbone = require('backbone');
var AnalysisDefinitionNodesCollection = require('builder/data/analysis-definition-nodes-collection');
var AnalysisDefinitionsCollection = require('builder/data/analysis-definitions-collection');
var ConfigModel = require('builder/data/config-model');
var DeleteLayerConfirmationView = require('builder/components/modals/remove-layer/delete-layer-confirmation-view');
var LayerDefinitionModel = require('builder/data/layer-definition-model');
var LayerDefinitionsCollection = require('builder/data/layer-definitions-collection');
var ModalsServiceModel = require('builder/components/modals/modals-service-model');
var UserActions = require('builder/data/user-actions');
var UserModel = require('builder/data/user-model');
var VisDefinitionModel = require('builder/data/vis-definition-model');
var WidgetDefinitionsCollection = require('builder/data/widget-definitions-collection');
describe('modals/delete-layer-confirmation-view', function () {
var view;
var modalModel;
var userData;
var configData;
var configModel;
var userModel;
var analysisDefinitionNodesCollection;
var layerModel;
var layerDefinitionsCollection;
var visDefinitionModel;
var widgetDefinitionsCollection;
var analysisDefinitionsCollection;
var userActions;
var modals;
modalModel = new Backbone.Model();
userData = {
id: '8c253a9a-94d8-4042-883c-3aa81285e5e6',
username: 'cdb'
};
configData = {
base_url: '/u/manolo',
maps_api_template: 'http://{user}.localhost.lan:8181'
};
configModel = new ConfigModel(configData);
userModel = new UserModel(userData, { configModel: configModel });
analysisDefinitionNodesCollection = new AnalysisDefinitionNodesCollection([], {
configModel: configModel,
userModel: userModel
});
layerModel = new LayerDefinitionModel({
id: 'map-123',
kind: 'carto',
options: {
type: 'CartoDB',
color: '#FABADA',
table_name: 'foo_bar',
name: 'foo',
letter: 'a',
source: 'map-123',
table_name_alias: 'foo_foo_bar',
query: 'SELECT * FROM foo',
tile_style: 'asdasd',
visible: true
}
}, {
configModel: configModel,
parse: true
});
layerDefinitionsCollection = new LayerDefinitionsCollection([layerModel], {
configModel: configModel,
userModel: userModel,
analysisDefinitionNodesCollection: analysisDefinitionNodesCollection,
mapId: 'map-123',
stateDefinitionModel: {}
});
visDefinitionModel = new VisDefinitionModel({
name: 'foo',
privacy: 'LINK',
updated_at: '2016-06-21T15:30:06+00:00',
type: 'derived',
tags: ['foo', 'bar'],
permission: {}
}, {
configModel: configModel
});
widgetDefinitionsCollection = new WidgetDefinitionsCollection([layerModel], {
configModel: configModel,
layerDefinitionsCollection: layerDefinitionsCollection,
analysisDefinitionNodesCollection: analysisDefinitionNodesCollection,
mapId: 'map-123'
});
analysisDefinitionsCollection = new AnalysisDefinitionsCollection([layerModel], {
configModel: configModel,
vizId: 'viz-123',
layerDefinitionsCollection: layerDefinitionsCollection,
analysisDefinitionNodesCollection: analysisDefinitionNodesCollection
});
userActions = new UserActions({
userModel: userModel,
analysisDefinitionNodesCollection: analysisDefinitionNodesCollection,
analysisDefinitionsCollection: analysisDefinitionsCollection,
layerDefinitionsCollection: layerDefinitionsCollection,
widgetDefinitionsCollection: widgetDefinitionsCollection
});
modals = new ModalsServiceModel();
function createViewFn (options) {
var defaultOptions = {
userActions: userActions,
modals: modals,
layerModel: layerModel,
modalModel: modalModel,
visDefinitionModel: visDefinitionModel,
widgetDefinitionsCollection: widgetDefinitionsCollection
};
return new DeleteLayerConfirmationView(_.extend(defaultOptions, options));
}
describe('render', function () {
it('should render properly', function () {
view = createViewFn();
view.render();
expect(view.$('h2')[0].textContent.trim()).toEqual('editor.layers.delete.title');
expect(view.$('p')[0].textContent.trim()).toEqual('editor.layers.delete.desc');
expect(view.$('li').length).toEqual(3);
expect(view.$('li')[0].textContent.trim()).toEqual('editor.layers.delete.link-to-export');
expect(view.$('button.js-cancel > span')[0].textContent.trim()).toEqual('editor.layers.delete.cancel');
expect(view.$('button.js-confirm > span')[0].textContent.trim()).toEqual('editor.layers.delete.confirm');
});
it('should show the name of the layer to be deleted', function () {
spyOn(layerModel, 'getName').and.callThrough();
view = createViewFn();
view.render();
expect(layerModel.getName).toHaveBeenCalled();
});
});
});