78 lines
2.6 KiB
JavaScript
78 lines
2.6 KiB
JavaScript
var $ = require('jquery');
|
|
var Backbone = require('backbone');
|
|
var WidgetsService = require('builder/editor/widgets/widgets-service');
|
|
var ModalsServiceModel = require('builder/components/modals/modals-service-model');
|
|
var Router = require('builder/routes/router');
|
|
|
|
describe('editor/widgets/widgets-service', function () {
|
|
var widgetModel;
|
|
|
|
beforeEach(function () {
|
|
spyOn(Router, 'goToWidget');
|
|
spyOn(Router, 'goToWidgetList');
|
|
|
|
widgetModel = new Backbone.Model({ id: 'wadus', name: 'wadus' });
|
|
WidgetsService._editorModel = new Backbone.Model();
|
|
WidgetsService._modals = new ModalsServiceModel();
|
|
});
|
|
|
|
describe('.editWidget', function () {
|
|
it('should set `edition` to false in _editorModel', function () {
|
|
spyOn(WidgetsService._editorModel, 'set');
|
|
|
|
WidgetsService.editWidget(widgetModel);
|
|
|
|
expect(WidgetsService._editorModel.set).toHaveBeenCalledWith('edition', false);
|
|
});
|
|
|
|
it('should call Router.goToWidget with the widgetModel id', function () {
|
|
WidgetsService.editWidget(widgetModel);
|
|
expect(Router.goToWidget).toHaveBeenCalledWith(widgetModel.get('id'));
|
|
});
|
|
|
|
it('should trigger `cancelPreviousEditions` in _editorModel', function () {
|
|
spyOn(WidgetsService._editorModel, 'trigger');
|
|
|
|
WidgetsService.editWidget(widgetModel);
|
|
|
|
expect(WidgetsService._editorModel.trigger).toHaveBeenCalledWith('cancelPreviousEditions');
|
|
});
|
|
});
|
|
|
|
describe('.removeWidget', function () {
|
|
afterEach(function () {
|
|
WidgetsService._modalView.clean();
|
|
});
|
|
|
|
describe('when the widgetDefinitionModel is defined', function () {
|
|
it('should create a delete confirmation widget template', function () {
|
|
spyOn(WidgetsService._modals, 'create').and.callThrough();
|
|
|
|
WidgetsService.removeWidget(widgetModel);
|
|
|
|
expect(WidgetsService._modals.create).toHaveBeenCalled();
|
|
expect($('.js-cancel').text().trim()).toEqual('editor.widgets.delete.cancel');
|
|
expect($('.js-confirm').text().trim()).toEqual('editor.widgets.delete.confirm');
|
|
});
|
|
|
|
it('should destroy the widget when the user clicks on ', function () {
|
|
spyOn(widgetModel, 'destroy');
|
|
|
|
WidgetsService.removeWidget(widgetModel);
|
|
$('.js-confirm').click();
|
|
|
|
expect(widgetModel.destroy).toHaveBeenCalled();
|
|
});
|
|
|
|
it('should redirect to the widget list when the user clicks on confirm', function () {
|
|
spyOn(widgetModel, 'destroy');
|
|
|
|
WidgetsService.removeWidget(widgetModel);
|
|
$('.js-confirm').click();
|
|
|
|
expect(Router.goToWidgetList).toHaveBeenCalled();
|
|
});
|
|
});
|
|
});
|
|
});
|