77 lines
2.4 KiB
JavaScript
77 lines
2.4 KiB
JavaScript
const Backbone = require('backbone');
|
|
const ApiKeysPageView = require('dashboard/views/api-keys/api-keys-page-view');
|
|
const apiKeysCollectionTypes = require('dashboard/data/api-keys-collection-types');
|
|
|
|
describe('dashboard/views/api-keys/api-keys-page-view', function () {
|
|
let view, userModel, renderSpy, stackLayoutModel, renderListSpy;
|
|
|
|
const createViewFn = function (options) {
|
|
userModel = new Backbone.Model({
|
|
base_url: 'wadus.com'
|
|
});
|
|
userModel.showGoogleApiKeys = () => false;
|
|
userModel.isInsideOrg = () => true;
|
|
userModel.isOrgOwner = () => true;
|
|
userModel.getOrgName = () => 'wadusORG';
|
|
userModel.getGoogleApiKey = () => 'google-api-key';
|
|
userModel.getAuthToken = () => 'authtoken';
|
|
|
|
stackLayoutModel = {
|
|
goToStep: jasmine.createSpy('goToStep')
|
|
};
|
|
|
|
const viewOptions = Object.assign({}, {
|
|
stackLayoutModel,
|
|
userModel
|
|
}, options);
|
|
|
|
return new ApiKeysPageView(viewOptions);
|
|
};
|
|
|
|
beforeEach(function () {
|
|
renderSpy = spyOn(ApiKeysPageView.prototype, 'render');
|
|
renderListSpy = spyOn(ApiKeysPageView.prototype, '_renderList');
|
|
view = createViewFn();
|
|
});
|
|
|
|
it('throws an error when stackLayoutModel is missing', function () {
|
|
view = function () {
|
|
return new ApiKeysPageView({
|
|
userModel
|
|
});
|
|
};
|
|
|
|
expect(view).toThrowError('stackLayoutModel is required');
|
|
});
|
|
|
|
it('throws an error when userModel is missing', function () {
|
|
view = function () {
|
|
return new ApiKeysPageView({
|
|
stackLayoutModel: new Backbone.Model()
|
|
});
|
|
};
|
|
|
|
expect(view).toThrowError('userModel is required');
|
|
});
|
|
|
|
describe('.render', function () {
|
|
beforeEach(function () {
|
|
renderSpy.and.callThrough();
|
|
});
|
|
|
|
it('should call _renderList with the correct params', function () {
|
|
view.render();
|
|
expect(view._renderList).toHaveBeenCalledTimes(2);
|
|
expect(view._renderList).toHaveBeenCalledWith([apiKeysCollectionTypes.MASTER, apiKeysCollectionTypes.DEFAULT].join(','), 'Default API Keys', false);
|
|
expect(view._renderList).toHaveBeenCalledWith(apiKeysCollectionTypes.REGULAR, 'Custom API Keys', true);
|
|
});
|
|
|
|
it('should add 2 ApiKeyLists to the page', function () {
|
|
renderSpy.and.callThrough();
|
|
renderListSpy.and.callThrough();
|
|
view.render();
|
|
expect(view.$('.js-api-keys-list').length).toBe(2);
|
|
});
|
|
});
|
|
});
|