76 lines
1.9 KiB
JavaScript
76 lines
1.9 KiB
JavaScript
|
const $ = require('jquery');
|
||
|
const _ = require('underscore');
|
||
|
const Backbone = require('backbone');
|
||
|
const ProfileMainView = require('dashboard/views/profile/profile-main-view');
|
||
|
const ModalsServiceModel = require('builder/components/modals/modals-service-model');
|
||
|
const UserModel = require('dashboard/data/user-model');
|
||
|
|
||
|
const ASSETS_VERSION = '4.1.0';
|
||
|
|
||
|
describe('dashboard/views/profile/profile-main-view', function () {
|
||
|
let userModel, configModel, view, $el;
|
||
|
|
||
|
const createViewFn = function (options) {
|
||
|
$el = $('<div id="app"></div>');
|
||
|
|
||
|
userModel = new UserModel(
|
||
|
_.extend({
|
||
|
username: 'pepe',
|
||
|
base_url: 'http://pepe.carto.com',
|
||
|
email: 'pepe@carto.com',
|
||
|
account_type: 'FREE',
|
||
|
id: 1,
|
||
|
api_key: 'hello-apikey'
|
||
|
}, options)
|
||
|
);
|
||
|
|
||
|
configModel = new Backbone.Model({
|
||
|
avatar_valid_extensions: ['jpeg', 'jpg', 'gif', 'png'],
|
||
|
upgrade_url: 'https://carto.com'
|
||
|
});
|
||
|
|
||
|
configModel.prefixUrl = () => '/public/assets/';
|
||
|
|
||
|
const view = new ProfileMainView({
|
||
|
el: $el,
|
||
|
userModel,
|
||
|
configModel,
|
||
|
modals: new ModalsServiceModel(),
|
||
|
organizationNotifications: {},
|
||
|
assetsVersion: ASSETS_VERSION
|
||
|
});
|
||
|
|
||
|
return view;
|
||
|
};
|
||
|
|
||
|
beforeEach(function () {
|
||
|
view = createViewFn();
|
||
|
});
|
||
|
|
||
|
describe('._initModels', function () {
|
||
|
it('should init models', function () {
|
||
|
expect(view._userModel).toBe(userModel);
|
||
|
expect(view._configModel).toEqual(configModel);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
describe('._initViews', function () {
|
||
|
it('should init views properly', function () {
|
||
|
expect(_.size(view._subviews)).toBe(4);
|
||
|
});
|
||
|
|
||
|
it('should show the trial notification if the user\'s show_trial_reminder is true', function () {
|
||
|
view = createViewFn({
|
||
|
account_type: 'Free 2020',
|
||
|
show_trial_reminder: true
|
||
|
});
|
||
|
|
||
|
expect(_.size(view._subviews)).toBe(5);
|
||
|
});
|
||
|
});
|
||
|
|
||
|
afterEach(function () {
|
||
|
view.clean();
|
||
|
});
|
||
|
});
|