90 lines
2.5 KiB
JavaScript
90 lines
2.5 KiB
JavaScript
var Backbone = require('backbone');
|
|
var ConfigModel = require('builder/data/config-model');
|
|
var UserModel = require('builder/data/user-model');
|
|
var VisDefinitionModel = require('builder/data/vis-definition-model');
|
|
var ShareWithView = require('builder/components/modals/publish/share-with-view');
|
|
|
|
describe('components/modals/publish/share-with-view', function () {
|
|
var view;
|
|
var visDefinitionModel;
|
|
var userModel;
|
|
|
|
beforeEach(function () {
|
|
var configModel = new ConfigModel({
|
|
base_url: '/u/pepe'
|
|
});
|
|
|
|
userModel = new UserModel({
|
|
id: 1,
|
|
username: 'pepe',
|
|
avatar_url: 'https://example.com/avatar.jpg',
|
|
actions: {
|
|
private_tables: true
|
|
}
|
|
}, {
|
|
configModel: configModel
|
|
});
|
|
|
|
visDefinitionModel = new VisDefinitionModel({
|
|
name: 'Foo Map',
|
|
privacy: 'PUBLIC',
|
|
updated_at: '2016-06-21T15:30:06+00:00',
|
|
type: 'derived',
|
|
permission: {}
|
|
}, {
|
|
configModel: configModel
|
|
});
|
|
|
|
view = new ShareWithView({
|
|
visDefinitionModel: visDefinitionModel,
|
|
userModel: userModel
|
|
});
|
|
|
|
view.render();
|
|
});
|
|
|
|
describe('render', function () {
|
|
it('should render properly', function () {
|
|
// empty because people is 0 and the user has no org
|
|
expect(view.$('.Share-user').length).toBe(0);
|
|
expect(view.$el.html()).not.toContain('components.modals.publish.share.add-people');
|
|
});
|
|
|
|
it('should render properly when inside org', function () {
|
|
userModel._organizationModel = new Backbone.Model({
|
|
id: 1
|
|
});
|
|
|
|
spyOn(view, '_getPeople').and.returnValue(2);
|
|
view.render();
|
|
|
|
expect(view.$('.Share-user').length).toBe(1);
|
|
expect(view.$el.text()).toContain('+ 2');
|
|
expect(view.$el.html()).not.toContain('components.modals.publish.share.add-people');
|
|
});
|
|
|
|
it('should render properly when inside org and has an action', function () {
|
|
userModel._organizationModel = new Backbone.Model({
|
|
id: 1
|
|
});
|
|
|
|
spyOn(view, '_getPeople').and.returnValue(0);
|
|
|
|
view = new ShareWithView({
|
|
visDefinitionModel: visDefinitionModel,
|
|
userModel: userModel,
|
|
clickPrivacyAction: jasmine.createSpy('actionCallback')
|
|
});
|
|
|
|
view.render();
|
|
|
|
expect(view.$('.Share-user').length).toBe(0);
|
|
expect(view.$el.html()).toContain('components.modals.publish.share.add-people');
|
|
});
|
|
});
|
|
|
|
it('should not have any leaks', function () {
|
|
expect(view).toHaveNoLeaks();
|
|
});
|
|
});
|