Mark Lenser pushed to branch feature/cmng-psp1-CHANNELMGR-699 at cms-community / hippo-addon-channel-manager
Commits: 174e26e3 by Mark at 2016-05-30T18:09:37+02:00 CHANNELMGR-699: add more tes - - - - - 1 changed file: - frontend-ng/src/angularjs/channel/menu/editor.spec.js Changes: ===================================== frontend-ng/src/angularjs/channel/menu/editor.spec.js ===================================== --- a/frontend-ng/src/angularjs/channel/menu/editor.spec.js +++ b/frontend-ng/src/angularjs/channel/menu/editor.spec.js @@ -28,13 +28,14 @@ describe('MenuEditor', () => { let DialogService; let FeedbackService; let HippoIframeService; + let FormStateService; let menu; let MenuEditorCtrl; beforeEach(() => { module('hippo-cm'); - inject((_$q_, _$rootScope_, _$compile_, _SiteMenuService_, _DialogService_, _FeedbackService_, _HippoIframeService_) => { + inject((_$q_, _$rootScope_, _$compile_, _SiteMenuService_, _DialogService_, _FeedbackService_, _HippoIframeService_, _FormStateService_) => { $q = _$q_; $rootScope = _$rootScope_; $compile = _$compile_; @@ -42,6 +43,7 @@ describe('MenuEditor', () => { DialogService = _DialogService_; FeedbackService = _FeedbackService_; HippoIframeService = _HippoIframeService_; + FormStateService = _FormStateService_; }); menu = { items: [] }; @@ -82,7 +84,7 @@ describe('MenuEditor', () => { expect($scope.onDone).toHaveBeenCalled(); }); - fdescribe('MenuEditorCtrl', () => { + describe('MenuEditorCtrl', () => { beforeEach(() => { MenuEditorCtrl = compileDirectiveAndGetController(); MenuEditorCtrl.editingItem = { @@ -111,6 +113,60 @@ describe('MenuEditor', () => { }); }); + describe('addItem', () => { + it('should add an item', () => { + spyOn(SiteMenuService, 'getMenu').and.callFake(() => { + const deferred = $q.defer(); + deferred.resolve(); + return deferred.promise; + }); + spyOn(SiteMenuService, 'createEditableMenuItem').and.callFake(() => { + const deferred = $q.defer(); + deferred.resolve({ + id: 15, + }); + return deferred.promise; + }); + spyOn(FormStateService, 'setValid'); + spyOn(MenuEditorCtrl, '_startEditingItem'); + + MenuEditorCtrl.menuUuid = 33; + MenuEditorCtrl.editingItem = { + id: 12, + }; + MenuEditorCtrl.addItem(); + expect(SiteMenuService.getMenu).toHaveBeenCalledWith(33); + $rootScope.$apply(); + expect(SiteMenuService.createEditableMenuItem).toHaveBeenCalled(); + $rootScope.$apply(); + expect(FormStateService.setValid).toHaveBeenCalledWith(true); + expect(MenuEditorCtrl.isSaving.newItem).toBe(false); + expect(MenuEditorCtrl._startEditingItem).toHaveBeenCalledWith({ + id: 15, + }); + }); + it('should fail when adding an item', () => { + spyOn(SiteMenuService, 'getMenu').and.callFake(() => { + const deferred = $q.defer(); + deferred.reject({ + data: 'bad!', + }); + return deferred.promise; + }); + spyOn(MenuEditorCtrl, 'onError'); + + MenuEditorCtrl.menuUuid = 77; + + MenuEditorCtrl.addItem(); + expect(SiteMenuService.getMenu).toHaveBeenCalledWith(77); + $rootScope.$apply(); + expect(MenuEditorCtrl.onError).toHaveBeenCalledWith({ + key: 'ERROR_MENU_CREATE_FAILED', + params: 'bad!', + }); + }); + }); + describe('toggleEditState', () => { it('calls the appropriate function after checking if an item is already being edited', () => { spyOn(SiteMenuService, 'getEditableMenuItem').and.callFake(() => { View it on GitLab: https://code.onehippo.org/cms-community/hippo-addon-channel-manager/commit/174e26e3f6743206875c46c9d8b628126ac30bbc
_______________________________________________ Hippocms-svn mailing list Hippocms-svn@lists.onehippo.org https://lists.onehippo.org/mailman/listinfo/hippocms-svn