Files
cartodb/lib/assets/test/spec/dashboard/components/flash-message/flash-message-view.spec.js
2020-06-15 10:58:47 +08:00

55 lines
1.5 KiB
JavaScript

const FlashMessageModel = require('dashboard/data/flash-message-model');
const FlashMessageView = require('dashboard/components/flash-message/flash-message-view');
describe('dashboard/components/flash-message/flash-message-view', function () {
let model, view;
const createViewFn = function () {
model = new FlashMessageModel();
const view = new FlashMessageView({ model });
return view;
};
beforeEach(function () {
view = createViewFn();
view.render();
});
it('should not display the view since there is no message', function () {
expect(view.el.outerHTML).toContain('display: none');
});
describe('when model.show is called', function () {
beforeEach(function () {
model.show('ERR!', 'error');
});
it('should show view', function () {
expect(view.el.outerHTML).not.toContain('display: none');
expect(view.el.outerHTML).toContain('ERR!');
expect(view.el.outerHTML).toContain('FlashMessage--error');
});
it('should update view', function () {
expect(view.el.outerHTML).toContain('ERR!');
expect(view.el.outerHTML).toContain('FlashMessage--error');
model.show('SUCCESS!', 'success');
expect(view.el.outerHTML).toContain('SUCCESS!');
expect(view.el.outerHTML).toContain('FlashMessage--success');
});
describe('when model.hide is called', function () {
beforeEach(function () {
model.hide();
});
it('should hide view', function () {
expect(view.el.outerHTML).toContain('display: none');
});
});
});
});