-/*-\r
- * ================================================================================\r
- * ECOMP Portal\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ================================================================================\r
- */\r
-/**\r
- * Created by nnaffar on 12/8/15.\r
- */\r
-'use strict';\r
-\r
-describe('Controller: NewAdminCtrl ', () => {\r
- beforeEach(module('ecompApp'));\r
-\r
- //destroy $http default cache before starting to prevent the error 'default cache already exists'\r
- beforeEach(inject((_CacheFactory_)=> {\r
- _CacheFactory_.destroyAll();\r
- }));\r
-\r
-\r
- let newCtrl, $controller, $q, $rootScope, $log;\r
-\r
- beforeEach(inject((_$controller_, _$q_, _$rootScope_, _$log_)=> {\r
- [$controller, $q, $rootScope, $log] = [_$controller_, _$q_, _$rootScope_, _$log_];\r
- }));\r
-\r
- let deferredAdminAppsRoles, deferredUpdateRolesRes;\r
- let adminsServiceMock;\r
- beforeEach(()=> {\r
- [deferredAdminAppsRoles, deferredUpdateRolesRes] = [$q.defer(), $q.defer()];\r
-\r
- adminsServiceMock = jasmine.createSpyObj('adminsServiceMock', ['getAdminAppsRoles', 'updateAdminAppsRoles']);\r
-\r
- adminsServiceMock.getAdminAppsRoles.and.returnValue(deferredAdminAppsRoles.promise);\r
- adminsServiceMock.updateAdminAppsRoles.and.returnValue(deferredUpdateRolesRes.promise);\r
-\r
- newCtrl = $controller('NewAdminModalCtrl', {\r
- $log: $log,\r
- adminsService: adminsServiceMock,\r
- $scope: $rootScope\r
- });\r
- });\r
-\r
- it('should init default values when loading the controller', ()=> {\r
- expect(newCtrl.dialogState).toBe(1);\r
- expect(newCtrl.selectedUser).toBe(null);\r
- });\r
-\r
- it('should populate admin apps roles and move to the next screen when adminsService.getAdminAppsRoles succeeded', ()=> {\r
- let userApps = {appsRoles: [{id: 1, isAdmin: false}, {id: 2, isAdmin: true}]};\r
- deferredAdminAppsRoles.resolve(userApps);\r
-\r
- newCtrl.selectedUser = {orgUserId: 'orgUserId'};\r
-\r
- newCtrl.getAdminAppsRoles();\r
- $rootScope.$apply();\r
-\r
- expect(adminsServiceMock.getAdminAppsRoles).toHaveBeenCalledWith(newCtrl.selectedUser.orgUserId);\r
- expect(newCtrl.adminAppsRoles).toEqual(userApps.appsRoles);\r
- expect(newCtrl.dialogState).toBe(2);\r
- });\r
-\r
- it('should log the error when adminsService.getAdminAppsRoles fails', ()=> {\r
- spyOn($log, 'error');\r
- deferredAdminAppsRoles.reject('some error');\r
-\r
- newCtrl.searchUsersInProgress = false;\r
- newCtrl.selectedUser = {orgUserId: 'orgUserId'};\r
-\r
- newCtrl.getAdminAppsRoles();\r
- $rootScope.$apply();\r
-\r
- expect($log.error).toHaveBeenCalled();\r
- });\r
- it('should log the error when trying to getAdminAppsRoles without selecting user ', ()=> {\r
- spyOn($log, 'error');\r
-\r
- newCtrl.searchUsersInProgress = false;\r
- newCtrl.selectedUser = null;\r
-\r
- newCtrl.getAdminAppsRoles();\r
- $rootScope.$apply();\r
-\r
- expect($log.error).toHaveBeenCalled();\r
- });\r
-\r
- it('should set isAdmin as true when adding app via the dropdown menu', ()=> {\r
- newCtrl.adminAppsRoles = [{id: 1, isAdmin: false},{id: 2, isAdmin: true}];\r
- //simulate UI change\r
- $rootScope.$apply('newAdmin.selectedNewApp = null');\r
- $rootScope.$apply('newAdmin.selectedNewApp = {id: 1, isAdmin: true}');\r
-\r
- expect(newCtrl.adminAppsRoles[0].isAdmin).toBe(true);\r
- expect(newCtrl.selectedNewApp).toBe(null);\r
- });\r
-\r
- it('should close the modal when updating apps roles succeeded', ()=> {\r
- $rootScope.closeThisDialog = () => {};\r
- spyOn($rootScope,'closeThisDialog');\r
-\r
- newCtrl.selectedUser = {orgUserId: 'orgUserId'};\r
- newCtrl.adminAppsRoles = [{id: 1}];\r
-\r
- deferredUpdateRolesRes.resolve();\r
- newCtrl.updateAdminAppsRoles();\r
- $rootScope.$apply();\r
-\r
- expect(adminsServiceMock.updateAdminAppsRoles).toHaveBeenCalledWith({orgUserId: newCtrl.selectedUser.orgUserId, appsRoles: newCtrl.adminAppsRoles});\r
- expect($rootScope.closeThisDialog).toHaveBeenCalled();\r
- });\r
- it('should log the error when updating apps roles fails', ()=> {\r
- newCtrl.selectedUser = {orgUserId: 'orgUserId'};\r
- newCtrl.adminAppsRoles = [{id: 1}];\r
-\r
- spyOn($log,'error');\r
- deferredUpdateRolesRes.reject();\r
- newCtrl.updateAdminAppsRoles();\r
- $rootScope.$apply();\r
- expect($log.error).toHaveBeenCalled();\r
- });\r
-});\r
+/*-
+ * ================================================================================
+ * ECOMP Portal
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ================================================================================
+ */
+/**
+ * Created by nnaffar on 12/8/15.
+ */
+'use strict';
+
+describe('Controller: NewAdminCtrl ', () => {
+ beforeEach(module('ecompApp'));
+
+ //destroy $http default cache before starting to prevent the error 'default cache already exists'
+ beforeEach(inject((_CacheFactory_)=> {
+ _CacheFactory_.destroyAll();
+ }));
+
+
+ let newCtrl, $controller, $q, $rootScope, $log;
+
+ beforeEach(inject((_$controller_, _$q_, _$rootScope_, _$log_)=> {
+ [$controller, $q, $rootScope, $log] = [_$controller_, _$q_, _$rootScope_, _$log_];
+ }));
+
+ let deferredAdminAppsRoles, deferredUpdateRolesRes;
+ let adminsServiceMock;
+ beforeEach(()=> {
+ [deferredAdminAppsRoles, deferredUpdateRolesRes] = [$q.defer(), $q.defer()];
+
+ adminsServiceMock = jasmine.createSpyObj('adminsServiceMock', ['getAdminAppsRoles', 'updateAdminAppsRoles']);
+
+ adminsServiceMock.getAdminAppsRoles.and.returnValue(deferredAdminAppsRoles.promise);
+ adminsServiceMock.updateAdminAppsRoles.and.returnValue(deferredUpdateRolesRes.promise);
+
+ newCtrl = $controller('NewAdminModalCtrl', {
+ $log: $log,
+ adminsService: adminsServiceMock,
+ $scope: $rootScope
+ });
+ });
+
+ it('should init default values when loading the controller', ()=> {
+ expect(newCtrl.dialogState).toBe(1);
+ expect(newCtrl.selectedUser).toBe(null);
+ });
+
+ it('should populate admin apps roles and move to the next screen when adminsService.getAdminAppsRoles succeeded', ()=> {
+ let userApps = {appsRoles: [{id: 1, isAdmin: false}, {id: 2, isAdmin: true}]};
+ deferredAdminAppsRoles.resolve(userApps);
+
+ newCtrl.selectedUser = {orgUserId: 'orgUserId'};
+
+ newCtrl.getAdminAppsRoles();
+ $rootScope.$apply();
+
+ expect(adminsServiceMock.getAdminAppsRoles).toHaveBeenCalledWith(newCtrl.selectedUser.orgUserId);
+ expect(newCtrl.adminAppsRoles).toEqual(userApps.appsRoles);
+ expect(newCtrl.dialogState).toBe(2);
+ });
+
+ it('should log the error when adminsService.getAdminAppsRoles fails', ()=> {
+ spyOn($log, 'error');
+ deferredAdminAppsRoles.reject('some error');
+
+ newCtrl.searchUsersInProgress = false;
+ newCtrl.selectedUser = {orgUserId: 'orgUserId'};
+
+ newCtrl.getAdminAppsRoles();
+ $rootScope.$apply();
+
+ expect($log.error).toHaveBeenCalled();
+ });
+ it('should log the error when trying to getAdminAppsRoles without selecting user ', ()=> {
+ spyOn($log, 'error');
+
+ newCtrl.searchUsersInProgress = false;
+ newCtrl.selectedUser = null;
+
+ newCtrl.getAdminAppsRoles();
+ $rootScope.$apply();
+
+ expect($log.error).toHaveBeenCalled();
+ });
+
+ it('should set isAdmin as true when adding app via the dropdown menu', ()=> {
+ newCtrl.adminAppsRoles = [{id: 1, isAdmin: false},{id: 2, isAdmin: true}];
+ //simulate UI change
+ $rootScope.$apply('newAdmin.selectedNewApp = null');
+ $rootScope.$apply('newAdmin.selectedNewApp = {id: 1, isAdmin: true}');
+
+ expect(newCtrl.adminAppsRoles[0].isAdmin).toBe(true);
+ expect(newCtrl.selectedNewApp).toBe(null);
+ });
+
+ it('should close the modal when updating apps roles succeeded', ()=> {
+ $rootScope.closeThisDialog = () => {};
+ spyOn($rootScope,'closeThisDialog');
+
+ newCtrl.selectedUser = {orgUserId: 'orgUserId'};
+ newCtrl.adminAppsRoles = [{id: 1}];
+
+ deferredUpdateRolesRes.resolve();
+ newCtrl.updateAdminAppsRoles();
+ $rootScope.$apply();
+
+ expect(adminsServiceMock.updateAdminAppsRoles).toHaveBeenCalledWith({orgUserId: newCtrl.selectedUser.orgUserId, appsRoles: newCtrl.adminAppsRoles});
+ expect($rootScope.closeThisDialog).toHaveBeenCalled();
+ });
+ it('should log the error when updating apps roles fails', ()=> {
+ newCtrl.selectedUser = {orgUserId: 'orgUserId'};
+ newCtrl.adminAppsRoles = [{id: 1}];
+
+ spyOn($log,'error');
+ deferredUpdateRolesRes.reject();
+ newCtrl.updateAdminAppsRoles();
+ $rootScope.$apply();
+ expect($log.error).toHaveBeenCalled();
+ });
+});