Files
cartodb/lib/assets/test/spec/dashboard/views/api-keys/alert-dialog-view.spec.js
T
2020-06-15 10:58:47 +08:00

80 lines
2.0 KiB
JavaScript

const Backbone = require('backbone');
const AlertDialogView = require('dashboard/views/api-keys/alert-dialog-view');
describe('dashboard/views/api-keys/alert-dialog-view', function () {
let view;
const createViewFn = function (options) {
const viewOptions = Object.assign({}, {
modalModel: new Backbone.Model(),
onSubmit: jasmine.createSpy('onSubmit'),
template: jasmine.createSpy('template')
}, options);
const view = new AlertDialogView(viewOptions);
return view;
};
beforeEach(function () {
view = createViewFn();
});
it('throws an error when modalModel is missing', function () {
view = function () {
return createViewFn({
modalModel: undefined
});
};
expect(view).toThrowError('modalModel is required');
});
it('throws an error when onSubmit is missing', function () {
view = function () {
return createViewFn({
onSubmit: undefined
});
};
expect(view).toThrowError('onSubmit is required');
});
it('throws an error when template is missing', function () {
view = function () {
return createViewFn({
template: undefined
});
};
expect(view).toThrowError('template is required');
});
describe('.render', function () {
it('should render properly', function () {
view.render();
expect(view._template).toHaveBeenCalled();
});
});
describe('._onSubmitClicked', function () {
it('should call ._onSubmit', function () {
view._onSubmitClicked();
expect(view._onSubmit).toHaveBeenCalled();
});
it('should call ._closeDialog', function () {
spyOn(view, '_closeDialog');
view._onSubmitClicked();
expect(view._closeDialog).toHaveBeenCalled();
});
});
describe('._closeDialog', function () {
it('should destroy modalModel', function () {
spyOn(view._modalModel, 'destroy');
view._closeDialog();
expect(view._modalModel.destroy).toHaveBeenCalled();
});
});
});