diff --git a/app/config/apiMapping.js b/app/config/apiMapping.js index ebaf916..eb0bcb5 100644 --- a/app/config/apiMapping.js +++ b/app/config/apiMapping.js @@ -115,47 +115,47 @@ var apiMapping = { 'method': 'update' } }, - RemoteProductManager: { + RemoteProjectManager: { validations: true, lazy: true, - channel: '/channel/remote-product-manager', + channel: '/channel/remote-project-manager', all: { 'endpoint': '/private/queue', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': '', 'httpMethod': 'GET' }, create: { 'endpoint': '/private/queue', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': '', 'httpMethod': 'POST' }, update: { 'endpoint': '/private/queue', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': '', 'httpMethod': 'PUT' }, remove: { 'endpoint': '/private/queue', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': '', 'httpMethod': 'DELETE' }, listen: { 'endpoint': '/channel', - 'controller': 'remote-product-manager' + 'controller': 'remote-project-manager' }, types: { 'endpoint': '/channel', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': 'types/', 'httpMethod': 'GET' }, scaffolding: { 'endpoint': '/channel', - 'controller': 'remote-product-manager', + 'controller': 'remote-project-manager', 'method': 'scaffolding/:type/', 'httpMethod': 'GET' } @@ -193,21 +193,21 @@ var apiMapping = { 'controller': 'status' } }, - RemoteProducts: { + RemoteProjects: { lazy: true, all: { 'endpoint': '/private/queue', - 'controller': 'products/remote' + 'controller': 'projects/remote' }, byProduct: { 'endpoint': '/private/queue', 'controller': 'products', - 'method': 'remote-products/:productId', + 'method': 'remote-projects/:productId', 'httpMethod': 'GET' }, listen: { 'endpoint': '/channel', - 'controller': 'products/remote' + 'controller': 'projects/remote' } }, ProductsStats: { diff --git a/app/controllers/internalRequestController.js b/app/controllers/internalRequestController.js index c9de709..f80dc31 100644 --- a/app/controllers/internalRequestController.js +++ b/app/controllers/internalRequestController.js @@ -27,17 +27,17 @@ app.controller('InternalRequestController', function ($controller, $scope, ApiRe $scope.resetInternalRequestForms(); - $scope.selectRemoteProducts = function () { + $scope.selectRemoteProjects = function () { if ($scope.featureRequestToPush.product && $scope.featureRequestToPush.product.id) { - if (!$scope.remoteProducts[$scope.featureRequestToPush.product.id]) { - $scope.refreshRemoteProducts($scope.featureRequestToPush.product.id); + if (!$scope.remoteProjects[$scope.featureRequestToPush.product.id]) { + $scope.refreshRemoteProjectsForProduct($scope.featureRequestToPush.product.id); } } }; - $scope.refreshRemoteProducts = function (productId) { - if (productId && !$scope.remoteProductsLoading[productId]) { - ProductsService.refreshRemoteProducts(productId); + $scope.refreshRemoteProjectsForProduct = function (productId) { + if (productId && !$scope.remoteProjectsLoading[productId]) { + ProductsService.refreshRemoteProjectsForProduct(productId); } }; @@ -88,9 +88,9 @@ app.controller('InternalRequestController', function ($controller, $scope, ApiRe $scope.pushFeatureRequest = function () { for (var key in $scope.products) { if ($scope.products[key].id == $scope.featureRequestToPush.product.id) { - for (var k in $scope.products[key].remoteProductInfo) { - if ($scope.products[key].remoteProductInfo[k].scopeId == $scope.featureRequestToPush.scopeId) { - $scope.featureRequestToPush.rpmId = $scope.products[key].remoteProductInfo[k].remoteProductManager.id; + for (var k in $scope.products[key].remoteProjectInfo) { + if ($scope.products[key].remoteProjectInfo[k].scopeId == $scope.featureRequestToPush.scopeId) { + $scope.featureRequestToPush.rpmId = $scope.products[key].remoteProjectInfo[k].remoteProjectManager.id; break; } } @@ -154,15 +154,16 @@ app.controller('InternalRequestController', function ($controller, $scope, ApiRe ProductsService.ready.then(null, null, function () { $scope.products = ProductsService.getProducts(); $scope.productsLoading = ProductsService.getProductsLoading(); - $scope.remoteProducts = ProductsService.getRemoteProducts(); - $scope.remoteProductsLoading = ProductsService.getRemoteProductsLoading(); + $scope.remoteProjects = ProductsService.getRemoteProjects(); + $scope.remoteProjectsLoading = ProductsService.getRemoteProjectsLoading(); }); InternalRequestRepo.listen([ApiResponseActions.CREATE, ApiResponseActions.DELETE, ApiResponseActions.UPDATE], function () { $scope.internalRequests.length = 0; + var internalRequests = InternalRequestRepo.getAll(); for (var i in internalRequests) { - $scope.internalRequests.push(internalRequests[i]); + $scope.internalRequests.push(internalRequests[i]); } }); } diff --git a/app/controllers/productController.js b/app/controllers/productController.js index d50051a..0a8cfea 100644 --- a/app/controllers/productController.js +++ b/app/controllers/productController.js @@ -1,4 +1,4 @@ -app.controller('ProductController', function ($controller, $scope, ApiResponseActions, ProductRepo, RemoteProductManagerRepo, RemoteProductsService) { +app.controller('ProductController', function ($controller, $scope, ApiResponseActions, ProductRepo, RemoteProjectManagerRepo, RemoteProjectsService) { angular.extend(this, $controller('AbstractController', { $scope: $scope @@ -10,11 +10,11 @@ app.controller('ProductController', function ($controller, $scope, ApiResponseAc $scope.productToDelete = {}; - $scope.addingRemoteProductInfo = false; - $scope.remoteProductInfoChanged = false; + $scope.addingRemoteProjectInfo = false; + $scope.remoteProjectInfoChanged = false; - $scope.remoteProductInfoToAdd = { - remoteProductManager: null, + $scope.remoteProjectInfoToAdd = { + remoteProjectManager: null, scopeId: null }; @@ -23,10 +23,10 @@ app.controller('ProductController', function ($controller, $scope, ApiResponseAc getResults: ProductRepo.getValidationResults }; - $scope.closeAddRemoteProductInfo = function() { - $scope.addingRemoteProductInfo = false; - $scope.remoteProductInfoToAdd = { - remoteProductManager: null, + $scope.closeAddRemoteProjectInfo = function() { + $scope.addingRemoteProjectInfo = false; + $scope.remoteProjectInfoToAdd = { + remoteProjectManager: null, scopeId: null }; }; @@ -38,8 +38,8 @@ app.controller('ProductController', function ($controller, $scope, ApiResponseAc $scope.productForms[key].$setPristine(); } } - $scope.closeAddRemoteProductInfo(); - $scope.remoteProductInfoChanged = false; + $scope.closeAddRemoteProjectInfo(); + $scope.remoteProjectInfoChanged = false; $scope.closeModal(); }; @@ -94,45 +94,45 @@ app.controller('ProductController', function ($controller, $scope, ApiResponseAc }); }; - $scope.openAddRemoteProductInfo = function() { - $scope.addingRemoteProductInfo = true; + $scope.openAddRemoteProjectInfo = function() { + $scope.addingRemoteProjectInfo = true; }; - $scope.addRemoteProductInfo = function(remoteProductInfo, remoteProduct) { - remoteProductInfo.push(remoteProduct); - $scope.remoteProductInfoChanged = true; - $scope.closeAddRemoteProductInfo(); + $scope.addRemoteProjectInfo = function(remoteProjectInfo, remoteProject) { + remoteProjectInfo.push(remoteProject); + $scope.remoteProjectInfoChanged = true; + $scope.closeAddRemoteProjectInfo(); }; - $scope.removeRemoteProductInfo = function(remoteProductInfo, remoteProduct) { - remoteProductInfo.splice(remoteProductInfo.indexOf(remoteProduct), 1); - $scope.remoteProductInfoChanged = true; + $scope.removeRemoteProjectInfo = function(remoteProjectInfo, remoteProject) { + remoteProjectInfo.splice(remoteProjectInfo.indexOf(remoteProject), 1); + $scope.remoteProjectInfoChanged = true; }; if ($scope.isManager() || $scope.isAdmin()) { - $scope.remoteProductManagers = RemoteProductManagerRepo.getAll(); + $scope.remoteProjectManagers = RemoteProjectManagerRepo.getAll(); - $scope.remoteProductInfo = RemoteProductsService.getRemoteProductInfo(); + $scope.remoteProjectInfo = RemoteProjectsService.getRemoteProjectInfo(); - $scope.getRemoteProductManagerRemoteProducts = function (remoteProductManagerId) { - return $scope.remoteProductInfo[remoteProductManagerId]; + $scope.getRemoteProjectManagerRemoteProjects = function (remoteProjectManagerId) { + return $scope.remoteProjectInfo[remoteProjectManagerId]; }; - $scope.getRemoteProductByRemoteProductInfo = function(remoteProductInfo) { - if (angular.isDefined(remoteProductInfo.remoteProductManager.id)) { - if (angular.isDefined($scope.remoteProductInfo[remoteProductInfo.remoteProductManager.id])) { - return $scope.remoteProductInfo[remoteProductInfo.remoteProductManager.id].filter(function(rp) { - return rp.id === remoteProductInfo.scopeId; + $scope.getRemoteProjectByRemoteProjectInfo = function(remoteProjectInfo) { + if (angular.isDefined(remoteProjectInfo.remoteProjectManager.id)) { + if (angular.isDefined($scope.remoteProjectInfo[remoteProjectInfo.remoteProjectManager.id])) { + return $scope.remoteProjectInfo[remoteProjectInfo.remoteProjectManager.id].filter(function(rp) { + return rp.id === remoteProjectInfo.scopeId; })[0]; } } }; - RemoteProductManagerRepo.listen([ApiResponseActions.CREATE, ApiResponseActions.DELETE, ApiResponseActions.UPDATE], function () { - $scope.remoteProductManagers.length = 0; - var remoteProductManagers = RemoteProductManagerRepo.getAll(); - for (var i in remoteProductManagers) { - $scope.remoteProductManagers.push(remoteProductManagers[i]); + RemoteProjectManagerRepo.listen([ApiResponseActions.CREATE, ApiResponseActions.DELETE, ApiResponseActions.UPDATE], function () { + $scope.remoteProjectManagers.length = 0; + var remoteProjectManagers = RemoteProjectManagerRepo.getAll(); + for (var i in remoteProjectManagers) { + $scope.remoteProjectManagers.push(remoteProjectManagers[i]); } }); } diff --git a/app/controllers/remoteProductManagerController.js b/app/controllers/remoteProductManagerController.js deleted file mode 100644 index a084124..0000000 --- a/app/controllers/remoteProductManagerController.js +++ /dev/null @@ -1,101 +0,0 @@ -app.controller('RemoteProductManagerController', function ($controller, $scope, ApiResponseActions, RemoteProductManagerRepo) { - - angular.extend(this, $controller('AbstractController', { - $scope: $scope - })); - - $scope.remoteProductManagers = RemoteProductManagerRepo.getAll(); - - $scope.remoteProductManagerToCreate = RemoteProductManagerRepo.getScaffold(); - - $scope.remoteProductManagerToEdit = {}; - $scope.remoteProductManagerToDelete = {}; - - RemoteProductManagerRepo.getTypes().then(function (types) { - $scope.serviceTypes = types; - $scope.resetRemoteProductManagerForms(); - }); - - $scope.remoteProductManagerForms = { - validations: RemoteProductManagerRepo.getValidations(), - getResults: RemoteProductManagerRepo.getValidationResults - }; - - $scope.resetRemoteProductManagerForms = function () { - RemoteProductManagerRepo.clearValidationResults(); - for (var key in $scope.remoteProductManagerForms) { - if ($scope.remoteProductManagerForms[key] !== undefined && !$scope.remoteProductManagerForms[key].$pristine && $scope.remoteProductManagerForms[key].$setPristine) { - $scope.remoteProductManagerForms[key].$setPristine(); - } - } - $scope.closeModal(); - }; - - $scope.createRemoteProductManager = function () { - RemoteProductManagerRepo.create($scope.remoteProductManagerToCreate).then(function (res) { - if (angular.fromJson(res.body).meta.status === 'SUCCESS') { - $scope.resetCreateRemoteProductManager(); - } - }); - }; - - $scope.resetCreateRemoteProductManager = function () { - $scope.remoteProductManagerToCreate = RemoteProductManagerRepo.getScaffold(); - $scope.resetRemoteProductManagerForms(); - }; - - $scope.editRemoteProductManager = function (remoteProductManager) { - $scope.remoteProductManagerToEdit = angular.copy(remoteProductManager); - $scope.openModal('#editRemoteProductManagerModal'); - }; - - $scope.updateRemoteProductManager = function () { - $scope.remoteProductManagerToEdit.dirty(true); - $scope.remoteProductManagerToEdit.save().then(function (res) { - if (angular.fromJson(res.body).meta.status === "SUCCESS") { - $scope.cancelEditRemoteProductManager(); - } - }); - }; - - $scope.cancelEditRemoteProductManager = function () { - $scope.remoteProductManagerToEdit.refresh(); - $scope.resetRemoteProductManagerForms(); - }; - - $scope.confirmDeleteRemoteProductManager = function (remoteProductManager) { - $scope.remoteProductManagerToDelete = remoteProductManager; - $scope.openModal('#deleteRemoteProductManagerModal'); - }; - - $scope.cancelDeleteRemoteProductManager = function () { - $scope.remoteProductManagerToDelete = {}; - $scope.closeModal(); - }; - - $scope.deleteRemoteProductManager = function (remoteProductManager) { - RemoteProductManagerRepo.delete(remoteProductManager).then(function (res) { - if (angular.fromJson(res.body).meta.status === 'SUCCESS') { - $scope.cancelDeleteRemoteProductManager(); - } - }); - }; - - $scope.typeSettings = function (type) { - for (var i in $scope.serviceTypes) { - if ($scope.serviceTypes[i].value === type) { - return $scope.serviceTypes[i].scaffold; - } - } - return []; - }; - - RemoteProductManagerRepo.listen([ApiResponseActions.CREATE, ApiResponseActions.DELETE, ApiResponseActions.UPDATE], function () { - $scope.remoteProductManagers.length = 0; - var remoteProductManagers = RemoteProductManagerRepo.getAll(); - for (var i in remoteProductManagers) { - $scope.remoteProductManagers.push(remoteProductManagers[i]); - } - }); - -}); diff --git a/app/controllers/remoteProjectManagerController.js b/app/controllers/remoteProjectManagerController.js new file mode 100644 index 0000000..39cb559 --- /dev/null +++ b/app/controllers/remoteProjectManagerController.js @@ -0,0 +1,106 @@ +app.controller('RemoteProjectManagerController', function ($controller, $scope, ApiResponseActions, RemoteProjectManagerRepo) { + + angular.extend(this, $controller('AbstractController', { + $scope: $scope + })); + + $scope.remoteProjectManagers = RemoteProjectManagerRepo.getAll(); + + $scope.remoteProjectManagerToCreate = RemoteProjectManagerRepo.getScaffold(); + + $scope.remoteProjectManagerToEdit = {}; + $scope.remoteProjectManagerToDelete = {}; + + RemoteProjectManagerRepo.getTypes().then(function (types) { + $scope.serviceTypes = types; + $scope.resetRemoteProjectManagerForms(); + }); + + $scope.remoteProjectManagerForms = { + validations: RemoteProjectManagerRepo.getValidations(), + getResults: RemoteProjectManagerRepo.getValidationResults + }; + + $scope.resetRemoteProjectManagerForms = function () { + RemoteProjectManagerRepo.clearValidationResults(); + for (var key in $scope.remoteProjectManagerForms) { + if ($scope.remoteProjectManagerForms[key] !== undefined && !$scope.remoteProjectManagerForms[key].$pristine && $scope.remoteProjectManagerForms[key].$setPristine) { + $scope.remoteProjectManagerForms[key].$setPristine(); + } + } + $scope.closeModal(); + }; + + $scope.addRemoteProjectManager = function () { + $scope.resetCreateRemoteProjectManager(); + $scope.openModal('#addRemoteProjectManagerModal'); + }; + + $scope.createRemoteProjectManager = function () { + RemoteProjectManagerRepo.create($scope.remoteProjectManagerToCreate).then(function (res) { + if (angular.fromJson(res.body).meta.status === 'SUCCESS') { + $scope.resetCreateRemoteProjectManager(); + } + }); + }; + + $scope.resetCreateRemoteProjectManager = function () { + $scope.remoteProjectManagerToCreate = RemoteProjectManagerRepo.getScaffold(); + $scope.resetRemoteProjectManagerForms(); + }; + + $scope.editRemoteProjectManager = function (remoteProjectManager) { + $scope.remoteProjectManagerToEdit = angular.copy(remoteProjectManager); + $scope.openModal('#editRemoteProjectManagerModal'); + }; + + $scope.updateRemoteProjectManager = function () { + $scope.remoteProjectManagerToEdit.dirty(true); + $scope.remoteProjectManagerToEdit.save().then(function (res) { + if (angular.fromJson(res.body).meta.status === "SUCCESS") { + $scope.cancelEditRemoteProjectManager(); + } + }); + }; + + $scope.cancelEditRemoteProjectManager = function () { + $scope.remoteProjectManagerToEdit.refresh(); + $scope.resetRemoteProjectManagerForms(); + }; + + $scope.confirmDeleteRemoteProjectManager = function (remoteProjectManager) { + $scope.remoteProjectManagerToDelete = remoteProjectManager; + $scope.openModal('#deleteRemoteProjectManagerModal'); + }; + + $scope.cancelDeleteRemoteProjectManager = function () { + $scope.remoteProjectManagerToDelete = {}; + $scope.closeModal(); + }; + + $scope.deleteRemoteProjectManager = function (remoteProjectManager) { + RemoteProjectManagerRepo.delete(remoteProjectManager).then(function (res) { + if (angular.fromJson(res.body).meta.status === 'SUCCESS') { + $scope.cancelDeleteRemoteProjectManager(); + } + }); + }; + + $scope.typeSettings = function (type) { + for (var i in $scope.serviceTypes) { + if ($scope.serviceTypes[i].value === type) { + return $scope.serviceTypes[i].scaffold; + } + } + return []; + }; + + RemoteProjectManagerRepo.listen([ApiResponseActions.CREATE, ApiResponseActions.DELETE, ApiResponseActions.UPDATE], function () { + $scope.remoteProjectManagers.length = 0; + var remoteProjectManagers = RemoteProjectManagerRepo.getAll(); + for (var i in remoteProjectManagers) { + $scope.remoteProjectManagers.push(remoteProjectManagers[i]); + } + }); + +}); diff --git a/app/directives/remoteProductManagerFormDirective.js b/app/directives/remoteProjectManagerFormDirective.js similarity index 93% rename from app/directives/remoteProductManagerFormDirective.js rename to app/directives/remoteProjectManagerFormDirective.js index ed415cf..771b4a5 100644 --- a/app/directives/remoteProductManagerFormDirective.js +++ b/app/directives/remoteProjectManagerFormDirective.js @@ -1,6 +1,6 @@ -app.directive('remoteProductManagerForm', function () { +app.directive('remoteProjectManagerForm', function () { return { - templateUrl: 'views/directives/remoteProductManagerForm.html', + templateUrl: 'views/directives/remoteProjectManagerForm.html', restrict: 'E', replace: false, scope: { diff --git a/app/filters/availableRemoteProductFilter.js b/app/filters/availableRemoteProjectFilter.js similarity index 85% rename from app/filters/availableRemoteProductFilter.js rename to app/filters/availableRemoteProjectFilter.js index aa63171..5af75f3 100644 --- a/app/filters/availableRemoteProductFilter.js +++ b/app/filters/availableRemoteProjectFilter.js @@ -1,4 +1,4 @@ -app.filter('availableRemoteProduct', function() { +app.filter('availableRemoteProject', function() { return function(input, usedRPs) { if (!input) return false; return input.filter(function(val) { diff --git a/app/index.html b/app/index.html index ce9cca4..d3155db 100644 --- a/app/index.html +++ b/app/index.html @@ -193,7 +193,7 @@ - + @@ -201,26 +201,26 @@ - + - + - + - + @@ -229,7 +229,7 @@ - + diff --git a/app/model/product.js b/app/model/product.js index a7710da..e51e68b 100644 --- a/app/model/product.js +++ b/app/model/product.js @@ -1,4 +1,4 @@ -app.model("Product", function Product(ProductsStatsService, RemoteProductsService) { +app.model("Product", function Product(ProductsStatsService, RemoteProjectsService) { return function Product() { var product = this; diff --git a/app/model/remoteProductManager.js b/app/model/remoteProductManager.js deleted file mode 100644 index d734468..0000000 --- a/app/model/remoteProductManager.js +++ /dev/null @@ -1,5 +0,0 @@ -app.model("RemoteProductManager", function RemoteProductManager() { - return function RemoteProductManager() { - return this; - }; -}); diff --git a/app/model/remoteProjectManager.js b/app/model/remoteProjectManager.js new file mode 100644 index 0000000..676bd1e --- /dev/null +++ b/app/model/remoteProjectManager.js @@ -0,0 +1,5 @@ +app.model("RemoteProjectManager", function RemoteProjectManager() { + return function RemoteProjectManager() { + return this; + }; +}); diff --git a/app/repo/productRepo.js b/app/repo/productRepo.js index 97f95d7..6d3c026 100644 --- a/app/repo/productRepo.js +++ b/app/repo/productRepo.js @@ -2,7 +2,7 @@ app.repo("ProductRepo", function ProductRepo() { this.scaffold = { name: '', - remoteProductInfo: [] + remoteProjectInfo: [] }; return this; diff --git a/app/repo/remoteProductManagerRepo.js b/app/repo/remoteProjectManagerRepo.js similarity index 85% rename from app/repo/remoteProductManagerRepo.js rename to app/repo/remoteProjectManagerRepo.js index 1f54d88..7a9e6ee 100644 --- a/app/repo/remoteProductManagerRepo.js +++ b/app/repo/remoteProjectManagerRepo.js @@ -1,4 +1,4 @@ -app.repo("RemoteProductManagerRepo", function RemoteProductManagerRepo($q, WsApi) { +app.repo("RemoteProjectManagerRepo", function RemoteProjectManagerRepo($q, WsApi) { this.scaffold = { name: '', @@ -7,7 +7,7 @@ app.repo("RemoteProductManagerRepo", function RemoteProductManagerRepo($q, WsApi this.getTypes = function () { return $q(function (resolve, reject) { - WsApi.fetch(apiMapping.RemoteProductManager.types).then(function (res) { + WsApi.fetch(apiMapping.RemoteProjectManager.types).then(function (res) { var apiRes = angular.fromJson(res.body); if (apiRes.meta.status === 'SUCCESS') { resolve(apiRes.payload['ArrayList']); @@ -21,7 +21,7 @@ app.repo("RemoteProductManagerRepo", function RemoteProductManagerRepo($q, WsApi this.getTypeScaffolding = function (type) { return $q(function (resolve, reject) { if (type !== undefined) { - WsApi.fetch(apiMapping.RemoteProductManager.scaffolding, { + WsApi.fetch(apiMapping.RemoteProjectManager.scaffolding, { pathValues: { type: type } diff --git a/app/services/productsService.js b/app/services/productsService.js index 64bfc9c..0e16918 100644 --- a/app/services/productsService.js +++ b/app/services/productsService.js @@ -3,8 +3,8 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { var products = []; var productsLoading = false; - var remoteProducts = {}; - var remoteProductsLoading = []; + var remoteProjects = {}; + var remoteProjectsLoading = []; var defer = $q.defer(); @@ -19,20 +19,20 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { productsLoading = false; var toRemove = {}; - for (var productId in remoteProducts) { + for (var productId in remoteProjects) { toRemove[productId] = productId; } for (var key in products) { toRemove[products[key].id] = undefined; - if (!remoteProductsLoading[products[key].id]) { - service.refreshRemoteProducts(products[key].id); + if (!remoteProjectsLoading[products[key].id]) { + service.refreshRemoteProjectsForProduct(products[key].id); } } for (var id in toRemove) { - remoteProducts[id] = undefined; + remoteProjects[id] = undefined; } } else { console.error(apiRes.meta); @@ -40,22 +40,22 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { } }; - var processRemoteProduct = function (res, productId) { + var processRemoteProject = function (res, productId) { var apiRes = angular.fromJson(res.body); if (apiRes.meta.status === 'SUCCESS') { - if (angular.isDefined(remoteProducts[productId])) { - for (var key in remoteProducts[productId]) { - remoteProducts[productId][key] = undefined; + if (angular.isDefined(remoteProjects[productId])) { + for (var key in remoteProjects[productId]) { + remoteProjects[productId][key] = undefined; } } else { - remoteProducts[productId] = {}; + remoteProjects[productId] = {}; } - angular.extend(remoteProducts[productId], apiRes.payload.HashMap); - remoteProductsLoading[productId] = false; + angular.extend(remoteProjects[productId], apiRes.payload.HashMap); + remoteProjectsLoading[productId] = false; } else { - throw "Unable to retrieve remote products for product " + productId; + throw "Unable to retrieve remote projects for product " + productId; } }; @@ -73,7 +73,7 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { } }; - service.refreshRemoteProducts = function (productId) { + service.refreshRemoteProjectsForProduct = function (productId) { if (productsLoading === false) { var productFound = false; for (var key in products) { @@ -90,10 +90,10 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { } }; - remoteProductsLoading[productId] = true; + remoteProjectsLoading[productId] = true; - WsApi.fetch(apiMapping.RemoteProducts.byProduct, options).then(function (res) { - processRemoteProduct(res, productId); + WsApi.fetch(apiMapping.RemoteProjects.byProduct, options).then(function (res) { + processRemoteProject(res, productId); }); } } @@ -107,18 +107,18 @@ app.service('ProductsService', function ($q, ProductRepo, WsApi) { return productsLoading; }; - service.getRemoteProducts = function () { - return remoteProducts; + service.getRemoteProjects = function () { + return remoteProjects; }; - service.getRemoteProductsLoading = function () { - return remoteProductsLoading; + service.getRemoteProjectsLoading = function () { + return remoteProjectsLoading; }; - service.getRemoteProductInfo = function (productId) { + service.getRemoteProjectInfo = function (productId) { for (var i in products) { if (products[i].id == productId) { - return products[i].remoteProductInfo; + return products[i].remoteProjectInfo; } } }; diff --git a/app/services/productsStatsService.js b/app/services/productsStatsService.js index 0cf9aca..94f0b1d 100644 --- a/app/services/productsStatsService.js +++ b/app/services/productsStatsService.js @@ -12,7 +12,7 @@ app.service('ProductsStatsService', function ($q, ProductRepo, WsApi) { ProductRepo.reset(); } else { console.error(apiRes.meta); - throw "Unable to retrieve remote products"; + throw "Unable to retrieve remote projects"; } }; diff --git a/app/services/remoteProductsService.js b/app/services/remoteProductsService.js deleted file mode 100644 index 499f532..0000000 --- a/app/services/remoteProductsService.js +++ /dev/null @@ -1,40 +0,0 @@ -app.service('RemoteProductsService', function ($q, ProductRepo, WsApi) { - - var remoteProductInfo = {}; - - var defer = $q.defer(); - - var process = function (response) { - var apiRes = angular.fromJson(response.body); - if (apiRes.meta.status === 'SUCCESS') { - for (var key in remoteProductInfo) { - remoteProductInfo[key] = undefined; - } - angular.extend(remoteProductInfo, apiRes.payload.HashMap); - defer.resolve(); - ProductRepo.reset(); - } else { - console.error(apiRes.meta); - throw "Unable to retrieve remote product information"; - } - }; - - WsApi.listen(apiMapping.RemoteProducts.listen).then(null, null, function (response) { - process(response); - }); - - this.refreshRemoteProductInfo = function () { - WsApi.fetch(apiMapping.RemoteProducts.all).then(function (response) { - process(response); - }); - }; - - this.getRemoteProductInfo = function () { - return remoteProductInfo; - }; - - this.refreshRemoteProductInfo(); - - this.ready = defer.promise; - -}); diff --git a/app/services/remoteProjectsService.js b/app/services/remoteProjectsService.js new file mode 100644 index 0000000..6619ba5 --- /dev/null +++ b/app/services/remoteProjectsService.js @@ -0,0 +1,40 @@ +app.service('RemoteProjectsService', function ($q, ProductRepo, WsApi) { + + var remoteProjectInfo = {}; + + var defer = $q.defer(); + + var process = function (response) { + var apiRes = angular.fromJson(response.body); + if (apiRes.meta.status === 'SUCCESS') { + for (var key in remoteProjectInfo) { + remoteProjectInfo[key] = undefined; + } + angular.extend(remoteProjectInfo, apiRes.payload.HashMap); + defer.resolve(); + ProductRepo.reset(); + } else { + console.error(apiRes.meta); + throw "Unable to retrieve remote project information"; + } + }; + + WsApi.listen(apiMapping.RemoteProjects.listen).then(null, null, function (response) { + process(response); + }); + + this.refreshRemoteProjectInfo = function () { + WsApi.fetch(apiMapping.RemoteProjects.all).then(function (response) { + process(response); + }); + }; + + this.getRemoteProjectInfo = function () { + return remoteProjectInfo; + }; + + this.refreshRemoteProjectInfo(); + + this.ready = defer.promise; + +}); diff --git a/app/views/directives/remoteProductManagerForm.html b/app/views/directives/remoteProjectManagerForm.html similarity index 92% rename from app/views/directives/remoteProductManagerForm.html rename to app/views/directives/remoteProjectManagerForm.html index fd1ed78..93d85db 100644 --- a/app/views/directives/remoteProductManagerForm.html +++ b/app/views/directives/remoteProjectManagerForm.html @@ -1,6 +1,6 @@
- +
diff --git a/app/views/management.html b/app/views/management.html index b97ae3a..777ec91 100644 --- a/app/views/management.html +++ b/app/views/management.html @@ -5,7 +5,7 @@ Products Statuses - Remote Progect Managers + Remote Project Managers Internal Requests Users diff --git a/app/views/management/products.html b/app/views/management/products.html index e7f71e4..532d47b 100644 --- a/app/views/management/products.html +++ b/app/views/management/products.html @@ -6,15 +6,15 @@ - - + + - - + +
ProductRemote Product ManagerRemote ProductRemote Project ManagerRemote Project Scope Id Actions
{{product.name}}{{product.remoteProductManager.name}}{{product.remoteProduct.name}}{{product.remoteProjectManager.name}}{{product.remoteProject.name}} {{product.scopeId}} diff --git a/app/views/management/remoteProductManager.html b/app/views/management/remoteProductManager.html deleted file mode 100644 index 3974930..0000000 --- a/app/views/management/remoteProductManager.html +++ /dev/null @@ -1,32 +0,0 @@ -
- - -
- - - - - - - - - - - - -
Remote Product ManagerSettingsActions
{{remoteProductManager.name}} -
    -
  • - -  {{remoteProductManager.settings[setting.key]}} -
  • -
-
- - -
- - - - -
diff --git a/app/views/management/remoteProjectManager.html b/app/views/management/remoteProjectManager.html new file mode 100644 index 0000000..ed5c6e5 --- /dev/null +++ b/app/views/management/remoteProjectManager.html @@ -0,0 +1,32 @@ +
+ + +
+ + + + + + + + + + + + +
Remote Project ManagerSettingsActions
{{remoteProjectManager.name}} +
    +
  • + +  {{remoteProjectManager.settings[setting.key]}} +
  • +
+
+ + +
+ + + + +
diff --git a/app/views/modals/addInternalRequestModal.html b/app/views/modals/addInternalRequestModal.html index 6085fbd..07dae81 100644 --- a/app/views/modals/addInternalRequestModal.html +++ b/app/views/modals/addInternalRequestModal.html @@ -37,7 +37,7 @@
-
diff --git a/app/views/modals/addProductModal.html b/app/views/modals/addProductModal.html index 1298d4a..5b2ce41 100644 --- a/app/views/modals/addProductModal.html +++ b/app/views/modals/addProductModal.html @@ -17,29 +17,29 @@
-
- - +
+ +
-
Add
+
Add
-
- -
-
- -
    -
  • {{getRemoteProductByRemoteProductInfo(remoteProduct).name}} - +
  • {{getRemoteProjectByRemoteProjectInfo(remoteProject).name}} +
diff --git a/app/views/modals/addRemoteProductManagerModal.html b/app/views/modals/addRemoteProductManagerModal.html deleted file mode 100644 index 3a9f9f1..0000000 --- a/app/views/modals/addRemoteProductManagerModal.html +++ /dev/null @@ -1,24 +0,0 @@ - - -
- - - - - - -
diff --git a/app/views/modals/addRemoteProjectManagerModal.html b/app/views/modals/addRemoteProjectManagerModal.html new file mode 100644 index 0000000..b2efdb0 --- /dev/null +++ b/app/views/modals/addRemoteProjectManagerModal.html @@ -0,0 +1,24 @@ + + +
+ + + + + + +
diff --git a/app/views/modals/deleteRemoteProductManagerModal.html b/app/views/modals/deleteRemoteProjectManagerModal.html similarity index 64% rename from app/views/modals/deleteRemoteProductManagerModal.html rename to app/views/modals/deleteRemoteProjectManagerModal.html index ee45107..5f21bac 100644 --- a/app/views/modals/deleteRemoteProductManagerModal.html +++ b/app/views/modals/deleteRemoteProjectManagerModal.html @@ -1,16 +1,16 @@ -
+
diff --git a/app/views/modals/editInternalRequestModal.html b/app/views/modals/editInternalRequestModal.html index 0b78eea..3a8dedc 100644 --- a/app/views/modals/editInternalRequestModal.html +++ b/app/views/modals/editInternalRequestModal.html @@ -37,7 +37,7 @@
-
diff --git a/app/views/modals/editProductModal.html b/app/views/modals/editProductModal.html index d83728d..474f8af 100644 --- a/app/views/modals/editProductModal.html +++ b/app/views/modals/editProductModal.html @@ -18,29 +18,29 @@
-
- - +
+ +
-
Add
+
Add
-
- -
-
- -
    -
  • {{getRemoteProductByRemoteProductInfo(remoteProduct).name}} - +
  • {{getRemoteProjectByRemoteProjectInfo(remoteProject).name}} +
@@ -92,6 +92,6 @@
diff --git a/app/views/modals/editRemoteProductManagerModal.html b/app/views/modals/editRemoteProductManagerModal.html deleted file mode 100644 index accccac..0000000 --- a/app/views/modals/editRemoteProductManagerModal.html +++ /dev/null @@ -1,24 +0,0 @@ - - -
- - - - - - -
diff --git a/app/views/modals/editRemoteProjectManagerModal.html b/app/views/modals/editRemoteProjectManagerModal.html new file mode 100644 index 0000000..2e1b114 --- /dev/null +++ b/app/views/modals/editRemoteProjectManagerModal.html @@ -0,0 +1,24 @@ + + +
+ + + + + + +
diff --git a/app/views/modals/editStatusModal.html b/app/views/modals/editStatusModal.html index f47785e..dc1f909 100644 --- a/app/views/modals/editStatusModal.html +++ b/app/views/modals/editStatusModal.html @@ -37,7 +37,7 @@ - \ No newline at end of file + diff --git a/app/views/modals/pushInternalRequestModal.html b/app/views/modals/pushInternalRequestModal.html index e003226..b4e0c3f 100644 --- a/app/views/modals/pushInternalRequestModal.html +++ b/app/views/modals/pushInternalRequestModal.html @@ -38,14 +38,14 @@
-
- -
diff --git a/tests/mock/model/mockProduct.js b/tests/mock/model/mockProduct.js index 624a254..db35c6e 100644 --- a/tests/mock/model/mockProduct.js +++ b/tests/mock/model/mockProduct.js @@ -1,10 +1,10 @@ var dataProduct1 = { id: 1, name: "Product 1", - remoteProductInfo: [{ - remoteProductManager: { + remoteProjectInfo: [{ + remoteProjectManager: { id: 1, - name: "Remote Product Manager 1", + name: "Remote Project Manager 1", settings: { password: "password1", url: "url1", @@ -19,10 +19,10 @@ var dataProduct1 = { var dataProduct2 = { id: 2, name: "Product 2", - remoteProductInfo: [{ - remoteProductManager: { + remoteProjectInfo: [{ + remoteProjectManager: { id: 1, - name: "Remote Product Manager 1", + name: "Remote Project Manager 1", settings: { password: "password1", url: "url1", @@ -37,10 +37,10 @@ var dataProduct2 = { var dataProduct3 = { id: 3, name: "Product 3", - remoteProductInfo: [{ - remoteProductManager: { + remoteProjectInfo: [{ + remoteProjectManager: { id: 1, - name: "Remote Product Manager 1", + name: "Remote Project Manager 1", settings: { password: "password1", url: "url1", diff --git a/tests/mock/model/mockRemoteProductManager.js b/tests/mock/model/mockRemoteProductManager.js deleted file mode 100644 index 96fdbe3..0000000 --- a/tests/mock/model/mockRemoteProductManager.js +++ /dev/null @@ -1,40 +0,0 @@ -var dataRemoteProductManager1 = { - id: 1, - name: "Remote Product Manager 1", - settings: { - password: "password1", - url: "url1", - username: "username1" - }, - type: "VERSION_ONE" -}; - -var dataRemoteProductManager2 = { - id: 2, - name: "Remote Product Manager 2", - settings: { - password: "password2", - url: "url2", - username: "username2" - }, - type: "VERSION_ONE" -}; - -var dataRemoteProductManager3 = { - id: 3, - name: "Remote Product Manager 3", - settings: { - password: "password3", - url: "url3", - username: "username3" - }, - type: "VERSION_ONE" -}; - -var mockRemoteProductManager = function ($q) { - var model = mockModel("RemoteProductManager", $q, dataRemoteProductManager1); - - return model; -}; - -angular.module("mock.remoteProductManager", []).service("RemoteProductManager", mockRemoteProductManager); diff --git a/tests/mock/model/mockRemoteProjectManager.js b/tests/mock/model/mockRemoteProjectManager.js new file mode 100644 index 0000000..5abad38 --- /dev/null +++ b/tests/mock/model/mockRemoteProjectManager.js @@ -0,0 +1,40 @@ +var dataRemoteProjectManager1 = { + id: 1, + name: "Remote Project Manager 1", + settings: { + password: "password1", + url: "url1", + username: "username1" + }, + type: "VERSION_ONE" +}; + +var dataRemoteProjectManager2 = { + id: 2, + name: "Remote Project Manager 2", + settings: { + password: "password2", + url: "url2", + username: "username2" + }, + type: "VERSION_ONE" +}; + +var dataRemoteProjectManager3 = { + id: 3, + name: "Remote Project Manager 3", + settings: { + password: "password3", + url: "url3", + username: "username3" + }, + type: "VERSION_ONE" +}; + +var mockRemoteProjectManager = function ($q) { + var model = mockModel("RemoteProjectManager", $q, dataRemoteProjectManager1); + + return model; +}; + +angular.module("mock.remoteProjectManager", []).service("RemoteProjectManager", mockRemoteProjectManager); diff --git a/tests/mock/repo/mockProductRepo.js b/tests/mock/repo/mockProductRepo.js index fc2a304..666b160 100644 --- a/tests/mock/repo/mockProductRepo.js +++ b/tests/mock/repo/mockProductRepo.js @@ -21,7 +21,7 @@ angular.module("mock.productRepo", []).service("ProductRepo", function ($q) { repo.scaffold = { name: '', - remoteProductInfo: [] + remoteProjectInfo: [] }; repo.mockValidations({ diff --git a/tests/mock/repo/mockRemoteProductManagerRepo.js b/tests/mock/repo/mockRemoteProductManagerRepo.js deleted file mode 100644 index 370cf22..0000000 --- a/tests/mock/repo/mockRemoteProductManagerRepo.js +++ /dev/null @@ -1,34 +0,0 @@ -var dataRemoteProductManagerRepo1 = [ - dataRemoteProductManager1, - dataRemoteProductManager2, - dataRemoteProductManager3 -]; - -var dataRemoteProductManagerRepo2 = [ - dataRemoteProductManager3, - dataRemoteProductManager2, - dataRemoteProductManager1 -]; - -var dataRemoteProductManagerRepo3 = [ - dataRemoteProductManager1, - dataRemoteProductManager3, - dataRemoteProductManager2 -]; - -angular.module("mock.remoteProductManagerRepo", []).service("RemoteProductManagerRepo", function ($q) { - var repo = mockRepo("RemoteProductManagerRepo", $q, mockRemoteProductManager, dataRemoteProductManagerRepo1); - - repo.scaffold = { - name: '', - type: '' - }; - - repo.getTypes = function () { - return payloadPromise($q.defer()); - }; - - repo.getTypeScaffolding = function (type) {}; - - return repo; -}); diff --git a/tests/mock/repo/mockRemoteProjectManagerRepo.js b/tests/mock/repo/mockRemoteProjectManagerRepo.js new file mode 100644 index 0000000..56c27d1 --- /dev/null +++ b/tests/mock/repo/mockRemoteProjectManagerRepo.js @@ -0,0 +1,34 @@ +var dataRemoteProjectManagerRepo1 = [ + dataRemoteProjectManager1, + dataRemoteProjectManager2, + dataRemoteProjectManager3 +]; + +var dataRemoteProjectManagerRepo2 = [ + dataRemoteProjectManager3, + dataRemoteProjectManager2, + dataRemoteProjectManager1 +]; + +var dataRemoteProjectManagerRepo3 = [ + dataRemoteProjectManager1, + dataRemoteProjectManager3, + dataRemoteProjectManager2 +]; + +angular.module("mock.remoteProjectManagerRepo", []).service("RemoteProjectManagerRepo", function ($q) { + var repo = mockRepo("RemoteProjectManagerRepo", $q, mockRemoteProjectManager, dataRemoteProjectManagerRepo1); + + repo.scaffold = { + name: '', + type: '' + }; + + repo.getTypes = function () { + return payloadPromise($q.defer()); + }; + + repo.getTypeScaffolding = function (type) {}; + + return repo; +}); diff --git a/tests/mock/service/mockProductsService.js b/tests/mock/service/mockProductsService.js index 74c6ac7..6d3cc2b 100644 --- a/tests/mock/service/mockProductsService.js +++ b/tests/mock/service/mockProductsService.js @@ -4,15 +4,15 @@ var mockProductsService = function ($q, $timeout) { var defer = $q.defer(); var products = []; var productsLoading = false; - var remoteProducts = {}; - var remoteProductsLoading = []; + var remoteProjects = {}; + var remoteProjectsLoading = []; service.mockProductsLoading = function (loading) { productsLoading = loading ? true : false; }; - service.remoteProductsLoading = function (productId, loading) { - remoteProductsLoading[productId] = loading ? true : false; + service.remoteProjectsLoading = function (productId, loading) { + remoteProjectsLoading[productId] = loading ? true : false; }; service.refreshProducts = function () { @@ -20,8 +20,8 @@ var mockProductsService = function ($q, $timeout) { return messagePromise($q.defer()); }; - service.refreshRemoteProducts = function (productId) { - remoteProductsLoading[productId] = false; + service.refreshRemoteProjectsForProduct = function (productId) { + remoteProjectsLoading[productId] = false; if (dataFeatureRequest1.id == productId) { return notifyPromise($timeout, $q.defer(), dataFeatureRequest1); @@ -34,18 +34,18 @@ var mockProductsService = function ($q, $timeout) { return productsLoading; }; - service.getRemoteProducts = function () { - return remoteProducts; + service.getRemoteProjects = function () { + return remoteProjects; }; - service.getRemoteProductsLoading = function () { - return remoteProductsLoading; + service.getRemoteProjectsLoading = function () { + return remoteProjectsLoading; }; - service.getRemoteProductInfo = function (productId) { + service.getRemoteProjectInfo = function (productId) { for (var i in products) { if (products[i].id == productId) { - return products[i].remoteProductInfo; + return products[i].remoteProjectInfo; } } }; diff --git a/tests/mock/service/mockRemoteProductsService.js b/tests/mock/service/mockRemoteProjectsService.js similarity index 97% rename from tests/mock/service/mockRemoteProductsService.js rename to tests/mock/service/mockRemoteProjectsService.js index 4bcbdd2..9654e9b 100644 --- a/tests/mock/service/mockRemoteProductsService.js +++ b/tests/mock/service/mockRemoteProjectsService.js @@ -1,4 +1,4 @@ -var dataRemoteProducts = { +var dataRemoteProjects = { 1: [{ id: 1934, name: "Legacy DSpace", @@ -515,14 +515,14 @@ var dataRemoteProducts = { }] }; -angular.module("mock.remoteProductsService", []).service("RemoteProductsService", function ($q) { +angular.module("mock.remoteProjectsService", []).service("RemoteProjectsService", function ($q) { var service = mockService($q); - service.getRemoteProductInfo = function () { - return dataRemoteProducts; + service.getRemoteProjectInfo = function () { + return dataRemoteProjects; }; - service.refreshRemoteProductInfo = function () { + service.refreshRemoteProjectInfo = function () { return messagePromise($q.defer()); }; diff --git a/tests/mock/service/mockWsApi.js b/tests/mock/service/mockWsApi.js index 01037b0..9f51668 100644 --- a/tests/mock/service/mockWsApi.js +++ b/tests/mock/service/mockWsApi.js @@ -56,13 +56,13 @@ angular.module("mock.wsApi", []).service("WsApi", function ($q) { payload = { "ArrayList": dataProductsStats }; - } else if (apiReq === mapping.RemoteProducts.byProduct) { + } else if (apiReq === mapping.RemoteProjects.byProduct) { payload = { - "HashMap": dataRemoteProducts + "HashMap": dataRemoteProjects }; - } else if (apiReq === mapping.RemoteProducts.all) { + } else if (apiReq === mapping.RemoteProjects.all) { payload = { - "HashMap": dataRemoteProducts + "HashMap": dataRemoteProjects }; } else if (apiReq === mapping.Product.all) { payload = { diff --git a/tests/unit/controllers/internalRequestControllerTest.js b/tests/unit/controllers/internalRequestControllerTest.js index 2be5b1b..b96d629 100644 --- a/tests/unit/controllers/internalRequestControllerTest.js +++ b/tests/unit/controllers/internalRequestControllerTest.js @@ -2,7 +2,7 @@ describe("controller: InternalRequestController", function () { var $q, $scope, $templateCache, MockedInternalRequest, InternalRequestRepo, InternalRequestsService, ProductRepo, ProductsService, WsApi, controller; var initializeVariables = function () { - inject(function (_$compile_, _$q_, _$templateCache_, _InternalRequestRepo_, _InternalRequestsService_, _ProductRepo_, _ProductsService_, _RemoteProductManagerRepo_, _WsApi_) { + inject(function (_$compile_, _$q_, _$templateCache_, _InternalRequestRepo_, _InternalRequestsService_, _ProductRepo_, _ProductsService_, _RemoteProjectManagerRepo_, _WsApi_) { $compile = _$compile_; $q = _$q_; $templateCache = _$templateCache_; @@ -54,7 +54,7 @@ describe("controller: InternalRequestController", function () { }); module("mock.internalRequestRepo"); module("mock.internalRequestsService"); - module("mock.remoteProductManagerRepo"); + module("mock.remoteProjectManagerRepo"); module("mock.product"); module("mock.productsService"); module("mock.user", function ($provide) { @@ -97,10 +97,10 @@ describe("controller: InternalRequestController", function () { "editInternalRequest", "pushFeatureRequest", "pushInternalRequest", - "refreshRemoteProducts", + "refreshRemoteProjectsForProduct", "resetCreateInternalRequest", "resetInternalRequestForms", - "selectRemoteProducts", + "selectRemoteProjects", "updateInternalRequest" ]; @@ -260,49 +260,49 @@ describe("controller: InternalRequestController", function () { expect($scope.openModal).toHaveBeenCalledWith("#pushInternalRequestModal"); }); - it("refreshRemoteProducts should call the service refresh for a given product id", function () { + it("refreshRemoteProjectsForProduct should call the service refresh for a given product id", function () { var featureRequest = new mockFeatureRequest($q); featureRequest.product = new mockProduct($q); - $scope.remoteProducts = {}; - $scope.remoteProducts[featureRequest.product.id] = {}; - $scope.remoteProductsLoading = {}; - $scope.remoteProductsLoading[featureRequest.product.id] = false; + $scope.remoteProjects = {}; + $scope.remoteProjects[featureRequest.product.id] = {}; + $scope.remoteProjectsLoading = {}; + $scope.remoteProjectsLoading[featureRequest.product.id] = false; - spyOn(ProductsService, "refreshRemoteProducts"); + spyOn(ProductsService, "refreshRemoteProjectsForProduct"); - $scope.refreshRemoteProducts(featureRequest.product.id); - expect(ProductsService.refreshRemoteProducts).toHaveBeenCalledWith(featureRequest.product.id); + $scope.refreshRemoteProjectsForProduct(featureRequest.product.id); + expect(ProductsService.refreshRemoteProjectsForProduct).toHaveBeenCalledWith(featureRequest.product.id); }); - it("refreshRemoteProducts should not call the service refresh for a given product id when remoteProductsLoading for that product id", function () { + it("refreshRemoteProjectsForProduct should not call the service refresh for a given product id when remoteProjectsLoading for that product id", function () { var featureRequest = new mockFeatureRequest($q); featureRequest.product = new mockProduct($q); - $scope.remoteProducts = {}; - $scope.remoteProducts[featureRequest.product.id] = {}; - $scope.remoteProductsLoading = {}; - $scope.remoteProductsLoading[featureRequest.product.id] = true; + $scope.remoteProjects = {}; + $scope.remoteProjects[featureRequest.product.id] = {}; + $scope.remoteProjectsLoading = {}; + $scope.remoteProjectsLoading[featureRequest.product.id] = true; - spyOn(ProductsService, "refreshRemoteProducts"); + spyOn(ProductsService, "refreshRemoteProjectsForProduct"); - $scope.refreshRemoteProducts(featureRequest.product.id); - expect(ProductsService.refreshRemoteProducts).not.toHaveBeenCalled(); + $scope.refreshRemoteProjectsForProduct(featureRequest.product.id); + expect(ProductsService.refreshRemoteProjectsForProduct).not.toHaveBeenCalled(); }); - it("refreshRemoteProducts should not call the service refresh when there is no given product id", function () { + it("refreshRemoteProjectsForProduct should not call the service refresh when there is no given product id", function () { var featureRequest = new mockFeatureRequest($q); featureRequest.product = new mockProduct($q); - $scope.remoteProducts = {}; - $scope.remoteProducts[featureRequest.product.id] = {}; - $scope.remoteProductsLoading = {}; - $scope.remoteProductsLoading[featureRequest.product.id] = false; + $scope.remoteProjects = {}; + $scope.remoteProjects[featureRequest.product.id] = {}; + $scope.remoteProjectsLoading = {}; + $scope.remoteProjectsLoading[featureRequest.product.id] = false; - spyOn(ProductsService, "refreshRemoteProducts"); + spyOn(ProductsService, "refreshRemoteProjectsForProduct"); - $scope.refreshRemoteProducts(); - expect(ProductsService.refreshRemoteProducts).not.toHaveBeenCalled(); + $scope.refreshRemoteProjectsForProduct(); + expect(ProductsService.refreshRemoteProjectsForProduct).not.toHaveBeenCalled(); }); it("resetCreateInternalRequest call resetInternalRequestForms() and clear out the properties", function () { @@ -352,37 +352,37 @@ describe("controller: InternalRequestController", function () { expect($scope.closeModal).toHaveBeenCalled(); }); - it("selectRemoteProducts select should call refresh for a given product id", function () { + it("selectRemoteProjects select should call refresh for a given product id", function () { $scope.featureRequestToPush = new mockFeatureRequest($q); $scope.featureRequestToPush.product = new mockProduct($q); - $scope.remoteProducts = {}; + $scope.remoteProjects = {}; - spyOn($scope, "refreshRemoteProducts"); + spyOn($scope, "refreshRemoteProjectsForProduct"); - $scope.selectRemoteProducts(); - expect($scope.refreshRemoteProducts).toHaveBeenCalled(); + $scope.selectRemoteProjects(); + expect($scope.refreshRemoteProjectsForProduct).toHaveBeenCalled(); }); - it("selectRemoteProducts select should not call refresh for a given product id if already loaded", function () { + it("selectRemoteProjects select should not call refresh for a given product id if already loaded", function () { $scope.featureRequestToPush = new mockFeatureRequest($q); $scope.featureRequestToPush.product = new mockProduct($q); - $scope.remoteProducts = {}; - $scope.remoteProducts[$scope.featureRequestToPush.product.id] = $scope.featureRequestToPush.product; + $scope.remoteProjects = {}; + $scope.remoteProjects[$scope.featureRequestToPush.product.id] = $scope.featureRequestToPush.product; - spyOn($scope, "refreshRemoteProducts"); + spyOn($scope, "refreshRemoteProjectsForProduct"); - $scope.selectRemoteProducts(); - expect($scope.refreshRemoteProducts).not.toHaveBeenCalled(); + $scope.selectRemoteProjects(); + expect($scope.refreshRemoteProjectsForProduct).not.toHaveBeenCalled(); }); - it("selectRemoteProducts should not call refresh if no product id is available", function () { + it("selectRemoteProjects should not call refresh if no product id is available", function () { $scope.featureRequestToPush = {}; - $scope.remoteProducts = {}; + $scope.remoteProjects = {}; - spyOn($scope, "refreshRemoteProducts"); + spyOn($scope, "refreshRemoteProjectsForProduct"); - $scope.selectRemoteProducts(); - expect($scope.refreshRemoteProducts).not.toHaveBeenCalled(); + $scope.selectRemoteProjects(); + expect($scope.refreshRemoteProjectsForProduct).not.toHaveBeenCalled(); }); it("updateInternalRequest call dirty and save on the InternalRequest, and then call cancelEditInternalRequest", function () { diff --git a/tests/unit/controllers/productControllerTest.js b/tests/unit/controllers/productControllerTest.js index bfa2341..23830d6 100644 --- a/tests/unit/controllers/productControllerTest.js +++ b/tests/unit/controllers/productControllerTest.js @@ -1,5 +1,5 @@ describe("controller: ProductController", function () { - var $compile, $q, $scope, $templateCache, $templateRequest, MockedProduct, MockedRemoteProductManager, MockedUser, WsApi, controller; + var $compile, $q, $scope, $templateCache, $templateRequest, MockedProduct, MockedRemoteProjectManager, MockedUser, WsApi, controller; var initializeVariables = function () { inject(function (_$compile_, _$q_, _$templateCache_, _$templateRequest_, _ProductRepo_, _WsApi_) { @@ -10,7 +10,7 @@ describe("controller: ProductController", function () { MockedUser = new mockUser($q); MockedProduct = new mockProduct($q); - MockedRemoteProductManager = new mockRemoteProductManager($q); + MockedRemoteProjectManager = new mockRemoteProjectManager($q); ProductRepo = _ProductRepo_; WsApi = _WsApi_; @@ -18,7 +18,7 @@ describe("controller: ProductController", function () { }; var initializeController = function (settings) { - inject(function (_$controller_, _$rootScope_, _ModalService_, _Product_, _RemoteProductManagerRepo_, _RemoteProductsService_, _UserService_) { + inject(function (_$controller_, _$rootScope_, _ModalService_, _Product_, _RemoteProjectManagerRepo_, _RemoteProjectsService_, _UserService_) { $scope = _$rootScope_.$new(); sessionStorage.role = settings && settings.role ? settings.role : "ROLE_ADMIN"; @@ -31,8 +31,8 @@ describe("controller: ProductController", function () { ModalService: _ModalService_, Product: _Product_, ProductRepo: ProductRepo, - RemoteProductManagerRepo: _RemoteProductManagerRepo_, - RemoteProductsService: _RemoteProductsService_, + RemoteProjectManagerRepo: _RemoteProjectManagerRepo_, + RemoteProjectsService: _RemoteProjectsService_, UserService: _UserService_ }); @@ -54,14 +54,14 @@ describe("controller: ProductController", function () { $provide.value("Product", Product); }); module("mock.productRepo"); - module("mock.remoteProductManager", function ($provide) { - var RemoteProductManager = function () { - return MockedRemoteProductManager; + module("mock.remoteProjectManager", function ($provide) { + var RemoteProjectManager = function () { + return MockedRemoteProjectManager; }; - $provide.value("RemoteProductManager", RemoteProductManager); + $provide.value("RemoteProjectManager", RemoteProjectManager); }); - module("mock.remoteProductManagerRepo"); - module("mock.remoteProductsService"); + module("mock.remoteProjectManagerRepo"); + module("mock.remoteProjectsService"); module("mock.user", function ($provide) { var User = function () { return MockedUser; @@ -93,17 +93,17 @@ describe("controller: ProductController", function () { describe("Is the scope method", function () { var methods = [ - "addRemoteProductInfo", + "addRemoteProjectInfo", "cancelDeleteProduct", "cancelEditProduct", "confirmDeleteProduct", "createProduct", "deleteProduct", "editProduct", - "getRemoteProductByRemoteProductInfo", - "getRemoteProductManagerRemoteProducts", - "openAddRemoteProductInfo", - "removeRemoteProductInfo", + "getRemoteProjectByRemoteProjectInfo", + "getRemoteProjectManagerRemoteProjects", + "openAddRemoteProjectInfo", + "removeRemoteProjectInfo", "resetCreateProduct", "resetProductForms", "updateProduct" @@ -122,23 +122,23 @@ describe("controller: ProductController", function () { }); describe("Does the scope method", function () { - it("addRemoteProductInfo should push changes and close info", function () { - var remoteProductInfo = [ - dataRemoteProducts[1], - dataRemoteProducts[2], - dataRemoteProducts[3], + it("addRemoteProjectInfo should push changes and close info", function () { + var remoteProjectInfo = [ + dataRemoteProjects[1], + dataRemoteProjects[2], + dataRemoteProjects[3], ]; - var remoteProduct = dataRemoteProducts[1]; + var remoteProject = dataRemoteProjects[1]; - $scope.remoteProductInfoChanged = null; + $scope.remoteProjectInfoChanged = null; - spyOn(remoteProductInfo, "push"); - spyOn($scope, "remoteProductInfoChanged"); + spyOn(remoteProjectInfo, "push"); + spyOn($scope, "remoteProjectInfoChanged"); - $scope.addRemoteProductInfo(remoteProductInfo, remoteProduct); + $scope.addRemoteProjectInfo(remoteProjectInfo, remoteProject); - expect($scope.remoteProductInfoChanged).toEqual(true); - expect(remoteProductInfo.push).toHaveBeenCalled(); + expect($scope.remoteProjectInfoChanged).toEqual(true); + expect(remoteProjectInfo.push).toHaveBeenCalled(); }); it("cancelEditProduct clear out productToEdit and call resetProductForms", function () { @@ -217,32 +217,32 @@ describe("controller: ProductController", function () { expect($scope.openModal).toHaveBeenCalled(); }); - it("getRemoteProductManagerRemoteProducts should return the remote product by id", function () { + it("getRemoteProjectManagerRemoteProjects should return the remote project by id", function () { var response; - response = $scope.getRemoteProductManagerRemoteProducts(2); + response = $scope.getRemoteProjectManagerRemoteProjects(2); - expect(response).toEqual(dataRemoteProducts[2]); + expect(response).toEqual(dataRemoteProjects[2]); }); - it("getRemoteProductByRemoteProductInfo should return the remote product by scope id", function () { + it("getRemoteProjectByRemoteProjectInfo should return the remote project by scope id", function () { var response; - var remoteProductInfo = { + var remoteProjectInfo = { scopeId: "3783", - remoteProductManager: new mockRemoteProductManager($q) + remoteProjectManager: new mockRemoteProjectManager($q) }; - response = $scope.getRemoteProductByRemoteProductInfo(remoteProductInfo); + response = $scope.getRemoteProjectByRemoteProjectInfo(remoteProjectInfo); - expect(response).toEqual(dataRemoteProducts[3]); + expect(response).toEqual(dataRemoteProjects[3]); }); - it("openAddRemoteProductInfo should assign addingRemoteProductInfo to true", function () { - $scope.addingRemoteProductInfo = null; + it("openAddRemoteProjectInfo should assign addingRemoteProjectInfo to true", function () { + $scope.addingRemoteProjectInfo = null; - $scope.openAddRemoteProductInfo(); + $scope.openAddRemoteProjectInfo(); - expect($scope.addingRemoteProductInfo).toEqual(true); + expect($scope.addingRemoteProjectInfo).toEqual(true); }); it("resetCreateProduct call resetProductForms() and clear out the name field", function () { @@ -280,22 +280,22 @@ describe("controller: ProductController", function () { expect(form.$dirty).toEqual(false); }); - it("removeRemoteProductInfo should remove product info", function () { - var remoteProductInfo = [ - dataRemoteProducts[1], - dataRemoteProducts[2], - dataRemoteProducts[3], + it("removeRemoteProjectInfo should remove remote project info", function () { + var remoteProjectInfo = [ + dataRemoteProjects[1], + dataRemoteProjects[2], + dataRemoteProjects[3], ]; - var remoteProduct = dataRemoteProducts[1]; + var remoteProject = dataRemoteProjects[1]; - $scope.remoteProductInfoChanged = null; + $scope.remoteProjectInfoChanged = null; - spyOn(remoteProductInfo, "splice"); + spyOn(remoteProjectInfo, "splice"); - $scope.removeRemoteProductInfo(remoteProductInfo, remoteProduct); + $scope.removeRemoteProjectInfo(remoteProjectInfo, remoteProject); - expect($scope.remoteProductInfoChanged).toEqual(true); - expect(remoteProductInfo.splice).toHaveBeenCalled(); + expect($scope.remoteProjectInfoChanged).toEqual(true); + expect(remoteProjectInfo.splice).toHaveBeenCalled(); }); it("updateProduct call dirty and save on the Product, and then call cancelEditProduct", function () { diff --git a/tests/unit/controllers/remoteProductManagerControllerTest.js b/tests/unit/controllers/remoteProductManagerControllerTest.js deleted file mode 100644 index 540a235..0000000 --- a/tests/unit/controllers/remoteProductManagerControllerTest.js +++ /dev/null @@ -1,284 +0,0 @@ -describe("controller: RemoteProductManagerController", function () { - var $compile, $q, $scope, $templateCache, MockedRemoteProductManager, RemoteProductManagerRepo, WsApi, controller; - - var initializeVariables = function () { - inject(function (_$compile_, _$q_, _$templateCache_, _RemoteProductManagerRepo_, _WsApi_) { - $compile = _$compile_; - $q = _$q_; - $templateCache = _$templateCache_; - - MockedRemoteProductManager = new mockRemoteProductManager($q); - - RemoteProductManagerRepo = _RemoteProductManagerRepo_; - WsApi = _WsApi_; - }); - }; - - var initializeController = function (settings) { - inject(function (_$controller_, _$filter_, _$rootScope_, _ModalService_, _RemoteProductManager_) { - $scope = _$rootScope_.$new(); - - sessionStorage.role = settings && settings.role ? settings.role : "ROLE_ADMIN"; - sessionStorage.token = settings && settings.token ? settings.token : "faketoken"; - - controller = _$controller_("RemoteProductManagerController", { - $scope: $scope, - $compile: $compile, - $filter: _$filter_, - ModalService: _ModalService_, - RemoteProductManagerRepo: RemoteProductManagerRepo - }); - - // ensure that the isReady() is called. - if (!$scope.$$phase) { - $scope.$digest(); - } - }); - }; - - beforeEach(function () { - module("core"); - module("app"); - module("templates"); - module("mock.remoteProductManager", function ($provide) { - var RemoteProductManager = function () { - return MockedRemoteProductManager; - }; - $provide.value("RemoteProductManager", RemoteProductManager); - }); - module("mock.remoteProductManagerRepo"); - module("mock.wsApi"); - - installPromiseMatchers(); - initializeVariables(); - initializeController(); - }); - - describe("Is the controller", function () { - var roles = [ "ROLE_ADMIN", "ROLE_MANAGER", "ROLE_USER", "ROLE_ANONYMOUS" ]; - - var controllerExists = function (setting) { - return function() { - initializeController(setting); - expect(controller).toBeDefined(); - }; - }; - - for (var i in roles) { - it("defined for " + roles[i], controllerExists({ role: roles[i] })); - } - }); - - describe("Is the scope method", function () { - var methods = [ - "resetRemoteProductManagerForms", - "createRemoteProductManager", - "resetCreateRemoteProductManager", - "editRemoteProductManager", - "updateRemoteProductManager", - "cancelEditRemoteProductManager", - "confirmDeleteRemoteProductManager", - "cancelDeleteRemoteProductManager", - "deleteRemoteProductManager", - "typeSettings" - ]; - - var scopeMethodExists = function (method) { - return function() { - expect($scope[method]).toBeDefined(); - expect(typeof $scope[method]).toEqual("function"); - }; - }; - - for (var i in methods) { - it(methods[i] + " defined", scopeMethodExists(methods[i])); - } - }); - - describe("Does the scope method", function () { - it("resetRemoteProductManagerForms reset Remote Product Manager forms", function () { - - var modal = angular.element($templateCache.get("views/modals/addRemoteProductManagerModal.html")); - modal = $compile(modal)($scope); - - var form = $scope.remoteProductManagerForms.create; - form.$setDirty(); - - expect(form.$dirty).toEqual(true); - - $scope.resetRemoteProductManagerForms(); - - expect(form.$pristine).toEqual(true); - expect(form.$dirty).toEqual(false); - }); - - it("createRemoteProductManager create a new Remote Product Manager", function () { - var newRemoteProductManager = { - "id": 4, - "name": "Test 4", - "type": "VERSION_ONE", - "settings": { - "password": "password4", - "url": "url4", - "username": "username4" - } - }; - $scope.remoteProductManagerToCreate = newRemoteProductManager; - $scope.createRemoteProductManager(); - - expect(RemoteProductManagerRepo.findById(newRemoteProductManager.id)).toEqual(newRemoteProductManager); - }); - - it("resetCreateRemoteProductManager call resetRemoteProductManagerForms() and clear out the fields", function () { - var newRemoteProductManager = { - "id": 4, - "name": "Test 4", - "type": "VERSION_ONE", - "settings": { - "password": "password4", - "url": "url4", - "username": "username4" - } - }; - var scaffold = { - "id": "", - "name": "", - "Type": "VERSION_ONE", - "settings": { - "password": "password4", - "url": "url4", - "username": "username4" - } - }; - spyOn($scope, "resetRemoteProductManagerForms"); - spyOn(RemoteProductManagerRepo, "getScaffold").and.returnValue(scaffold); - - $scope.remoteProductManagerToCreate = newRemoteProductManager; - $scope.resetCreateRemoteProductManager(); - - expect($scope.remoteProductManagerToCreate.name).toEqual(""); - expect($scope.resetRemoteProductManagerForms).toHaveBeenCalled(); - }); - - it("editRemoteProductManager set the remoteProductManagerToEdit and open the modal", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - spyOn($scope, "openModal"); - $scope.editRemoteProductManager(remoteProductManager); - - expect($scope.remoteProductManagerToEdit).toEqual(remoteProductManager); - expect($scope.openModal).toHaveBeenCalled(); - }); - - it("updateRemoteProductManager call dirty and save on the Remote Product Manager, and then call cancelEditRemoteProductManager", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - spyOn($scope, "cancelEditRemoteProductManager"); - spyOn(remoteProductManager, "dirty"); - deferred = $q.defer(); - spyOn(remoteProductManager, "save").and.returnValue(deferred.promise); - $scope.remoteProductManagerToEdit = remoteProductManager; - $scope.updateRemoteProductManager(); - deferred.resolve({ - body: angular.toJson({ - meta: { - status: "SUCCESS" - } - }) - }); - $scope.$apply(); - - expect($scope.cancelEditRemoteProductManager).toHaveBeenCalled(); - expect(remoteProductManager.dirty).toHaveBeenCalledWith(true); - expect(remoteProductManager.save).toHaveBeenCalled(); - }); - - it("cancelEditRemoteProductManager clear out remoteProductManagerToEdit and call resetRemoteProductManagerForms", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - spyOn(remoteProductManager, "refresh"); - spyOn($scope, "resetRemoteProductManagerForms"); - - $scope.remoteProductManagerToEdit = remoteProductManager; - $scope.cancelEditRemoteProductManager(); - - expect(remoteProductManager.refresh).toHaveBeenCalled(); - expect($scope.resetRemoteProductManagerForms).toHaveBeenCalled(); - }); - - it("confirmDeleteRemoteProductManager set the remoteProductManagerToDelete and open the modal", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - spyOn($scope, "openModal"); - $scope.confirmDeleteRemoteProductManager(remoteProductManager); - - expect($scope.openModal).toHaveBeenCalled(); - expect($scope.remoteProductManagerToDelete).toEqual(remoteProductManager); - }); - - it("cancelDeleteRemoteProductManager clear remoteProductManagerToDelete and close the modal", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - spyOn($scope, "closeModal"); - $scope.remoteProductManagerToDelete = remoteProductManager; - $scope.cancelDeleteRemoteProductManager(); - - expect($scope.closeModal).toHaveBeenCalled(); - expect($scope.remoteProductManagerToDelete).toEqual({}); - }); - - it("deleteRemoteProductManager call the repo delete method and then call cancelDeleteRemoteProductManager when successful", function () { - var remoteProductManager = new mockRemoteProductManager($q); - - $scope.remoteProductManagerToDelete = remoteProductManager; - deferred = $q.defer(); - spyOn(RemoteProductManagerRepo, "delete").and.returnValue(deferred.promise); - spyOn($scope, "cancelDeleteRemoteProductManager"); - $scope.deleteRemoteProductManager(remoteProductManager); - deferred.resolve({ - body: angular.toJson({ - meta: { - status: "SUCCESS" - } - }) - }); - $scope.$apply(); - - expect(RemoteProductManagerRepo.delete).toHaveBeenCalledWith(remoteProductManager); - expect($scope.cancelDeleteRemoteProductManager).toHaveBeenCalled(); - }); - - it("typeSettings return appropriate scaffold", function () { - var scaffold = [{ - type: "text", - key: "url", - gloss: "URL", - visible: true - }, { - type: "text", - key: "username", - gloss: "Username", - visible: false - }, { - type: "password", - key: "password", - gloss: "Password", - visible: false - }, { - type: "password", - key: "token", - gloss: "Token", - visible: false - }]; - $scope.serviceTypes = [{ - "gloss": "Version One", - "scaffold": scaffold, - "value": "VERSION_ONE" - }]; - var typeSettings = $scope.typeSettings("VERSION_ONE"); - expect(typeSettings).toEqual(scaffold); - }); - - }); - -}); diff --git a/tests/unit/controllers/remoteProjectManagerControllerTest.js b/tests/unit/controllers/remoteProjectManagerControllerTest.js new file mode 100644 index 0000000..966d9ff --- /dev/null +++ b/tests/unit/controllers/remoteProjectManagerControllerTest.js @@ -0,0 +1,294 @@ +describe("controller: RemoteProjectManagerController", function () { + var $compile, $q, $scope, $templateCache, MockedRemoteProjectManager, RemoteProjectManagerRepo, WsApi, controller; + + var initializeVariables = function () { + inject(function (_$compile_, _$q_, _$templateCache_, _RemoteProjectManagerRepo_, _WsApi_) { + $compile = _$compile_; + $q = _$q_; + $templateCache = _$templateCache_; + + MockedRemoteProjectManager = new mockRemoteProjectManager($q); + + RemoteProjectManagerRepo = _RemoteProjectManagerRepo_; + WsApi = _WsApi_; + }); + }; + + var initializeController = function (settings) { + inject(function (_$controller_, _$filter_, _$rootScope_, _ModalService_, _RemoteProjectManager_) { + $scope = _$rootScope_.$new(); + + sessionStorage.role = settings && settings.role ? settings.role : "ROLE_ADMIN"; + sessionStorage.token = settings && settings.token ? settings.token : "faketoken"; + + controller = _$controller_("RemoteProjectManagerController", { + $scope: $scope, + $compile: $compile, + $filter: _$filter_, + ModalService: _ModalService_, + RemoteProjectManagerRepo: RemoteProjectManagerRepo + }); + + // ensure that the isReady() is called. + if (!$scope.$$phase) { + $scope.$digest(); + } + }); + }; + + beforeEach(function () { + module("core"); + module("app"); + module("templates"); + module("mock.remoteProjectManager", function ($provide) { + var RemoteProjectManager = function () { + return MockedRemoteProjectManager; + }; + $provide.value("RemoteProjectManager", RemoteProjectManager); + }); + module("mock.remoteProjectManagerRepo"); + module("mock.wsApi"); + + installPromiseMatchers(); + initializeVariables(); + initializeController(); + }); + + describe("Is the controller", function () { + var roles = [ "ROLE_ADMIN", "ROLE_MANAGER", "ROLE_USER", "ROLE_ANONYMOUS" ]; + + var controllerExists = function (setting) { + return function() { + initializeController(setting); + expect(controller).toBeDefined(); + }; + }; + + for (var i in roles) { + it("defined for " + roles[i], controllerExists({ role: roles[i] })); + } + }); + + describe("Is the scope method", function () { + var methods = [ + "addRemoteProjectManager", + "resetRemoteProjectManagerForms", + "createRemoteProjectManager", + "resetCreateRemoteProjectManager", + "editRemoteProjectManager", + "updateRemoteProjectManager", + "cancelEditRemoteProjectManager", + "confirmDeleteRemoteProjectManager", + "cancelDeleteRemoteProjectManager", + "deleteRemoteProjectManager", + "typeSettings" + ]; + + var scopeMethodExists = function (method) { + return function() { + expect($scope[method]).toBeDefined(); + expect(typeof $scope[method]).toEqual("function"); + }; + }; + + for (var i in methods) { + it(methods[i] + " defined", scopeMethodExists(methods[i])); + } + }); + + describe("Does the scope method", function () { + it("addRemoteProjectManager to open the modal", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn($scope, "openModal"); + + $scope.addRemoteProjectManager(); + expect($scope.openModal).toHaveBeenCalledWith("#addRemoteProjectManagerModal"); + }); + + it("resetRemoteProjectManagerForms reset Remote Project Manager forms", function () { + + var modal = angular.element($templateCache.get("views/modals/addRemoteProjectManagerModal.html")); + modal = $compile(modal)($scope); + + var form = $scope.remoteProjectManagerForms.create; + form.$setDirty(); + + expect(form.$dirty).toEqual(true); + + $scope.resetRemoteProjectManagerForms(); + + expect(form.$pristine).toEqual(true); + expect(form.$dirty).toEqual(false); + }); + + it("createRemoteProjectManager create a new Remote Project Manager", function () { + var newRemoteProjectManager = { + "id": 4, + "name": "Test 4", + "type": "VERSION_ONE", + "settings": { + "password": "password4", + "url": "url4", + "username": "username4" + } + }; + $scope.remoteProjectManagerToCreate = newRemoteProjectManager; + $scope.createRemoteProjectManager(); + + expect(RemoteProjectManagerRepo.findById(newRemoteProjectManager.id)).toEqual(newRemoteProjectManager); + }); + + it("resetCreateRemoteProjectManager call resetRemoteProjectManagerForms() and clear out the fields", function () { + var newRemoteProjectManager = { + "id": 4, + "name": "Test 4", + "type": "VERSION_ONE", + "settings": { + "password": "password4", + "url": "url4", + "username": "username4" + } + }; + var scaffold = { + "id": "", + "name": "", + "Type": "VERSION_ONE", + "settings": { + "password": "password4", + "url": "url4", + "username": "username4" + } + }; + spyOn($scope, "resetRemoteProjectManagerForms"); + spyOn(RemoteProjectManagerRepo, "getScaffold").and.returnValue(scaffold); + + $scope.remoteProjectManagerToCreate = newRemoteProjectManager; + $scope.resetCreateRemoteProjectManager(); + + expect($scope.remoteProjectManagerToCreate.name).toEqual(""); + expect($scope.resetRemoteProjectManagerForms).toHaveBeenCalled(); + }); + + it("editRemoteProjectManager set the remoteProjectManagerToEdit and open the modal", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn($scope, "openModal"); + $scope.editRemoteProjectManager(remoteProjectManager); + + expect($scope.remoteProjectManagerToEdit).toEqual(remoteProjectManager); + expect($scope.openModal).toHaveBeenCalled(); + }); + + it("updateRemoteProjectManager call dirty and save on the Remote Project Manager, and then call cancelEditRemoteProjectManager", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn($scope, "cancelEditRemoteProjectManager"); + spyOn(remoteProjectManager, "dirty"); + deferred = $q.defer(); + spyOn(remoteProjectManager, "save").and.returnValue(deferred.promise); + $scope.remoteProjectManagerToEdit = remoteProjectManager; + $scope.updateRemoteProjectManager(); + deferred.resolve({ + body: angular.toJson({ + meta: { + status: "SUCCESS" + } + }) + }); + $scope.$apply(); + + expect($scope.cancelEditRemoteProjectManager).toHaveBeenCalled(); + expect(remoteProjectManager.dirty).toHaveBeenCalledWith(true); + expect(remoteProjectManager.save).toHaveBeenCalled(); + }); + + it("cancelEditRemoteProjectManager clear out remoteProjectManagerToEdit and call resetRemoteProjectManagerForms", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn(remoteProjectManager, "refresh"); + spyOn($scope, "resetRemoteProjectManagerForms"); + + $scope.remoteProjectManagerToEdit = remoteProjectManager; + $scope.cancelEditRemoteProjectManager(); + + expect(remoteProjectManager.refresh).toHaveBeenCalled(); + expect($scope.resetRemoteProjectManagerForms).toHaveBeenCalled(); + }); + + it("confirmDeleteRemoteProjectManager set the remoteProjectManagerToDelete and open the modal", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn($scope, "openModal"); + $scope.confirmDeleteRemoteProjectManager(remoteProjectManager); + + expect($scope.openModal).toHaveBeenCalled(); + expect($scope.remoteProjectManagerToDelete).toEqual(remoteProjectManager); + }); + + it("cancelDeleteRemoteProjectManager clear remoteProjectManagerToDelete and close the modal", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + spyOn($scope, "closeModal"); + $scope.remoteProjectManagerToDelete = remoteProjectManager; + $scope.cancelDeleteRemoteProjectManager(); + + expect($scope.closeModal).toHaveBeenCalled(); + expect($scope.remoteProjectManagerToDelete).toEqual({}); + }); + + it("deleteRemoteProjectManager call the repo delete method and then call cancelDeleteRemoteProjectManager when successful", function () { + var remoteProjectManager = new mockRemoteProjectManager($q); + + $scope.remoteProjectManagerToDelete = remoteProjectManager; + deferred = $q.defer(); + spyOn(RemoteProjectManagerRepo, "delete").and.returnValue(deferred.promise); + spyOn($scope, "cancelDeleteRemoteProjectManager"); + $scope.deleteRemoteProjectManager(remoteProjectManager); + deferred.resolve({ + body: angular.toJson({ + meta: { + status: "SUCCESS" + } + }) + }); + $scope.$apply(); + + expect(RemoteProjectManagerRepo.delete).toHaveBeenCalledWith(remoteProjectManager); + expect($scope.cancelDeleteRemoteProjectManager).toHaveBeenCalled(); + }); + + it("typeSettings return appropriate scaffold", function () { + var scaffold = [{ + type: "text", + key: "url", + gloss: "URL", + visible: true + }, { + type: "text", + key: "username", + gloss: "Username", + visible: false + }, { + type: "password", + key: "password", + gloss: "Password", + visible: false + }, { + type: "password", + key: "token", + gloss: "Token", + visible: false + }]; + $scope.serviceTypes = [{ + "gloss": "Version One", + "scaffold": scaffold, + "value": "VERSION_ONE" + }]; + var typeSettings = $scope.typeSettings("VERSION_ONE"); + expect(typeSettings).toEqual(scaffold); + }); + + }); + +}); diff --git a/tests/unit/directives/remoteProductManagerFormDirectiveTest.js b/tests/unit/directives/remoteProjectManagerFormDirectiveTest.js similarity index 85% rename from tests/unit/directives/remoteProductManagerFormDirectiveTest.js rename to tests/unit/directives/remoteProjectManagerFormDirectiveTest.js index 3721a16..05444bf 100644 --- a/tests/unit/directives/remoteProductManagerFormDirectiveTest.js +++ b/tests/unit/directives/remoteProjectManagerFormDirectiveTest.js @@ -1,4 +1,4 @@ -describe("directive: remoteProductManagerForm", function () { +describe("directive: remoteProjectManagerForm", function () { var $compile, $q, $scope, directive, element, formSettings, formModel; var initializeVariables = function () { @@ -39,10 +39,10 @@ describe("directive: remoteProductManagerForm", function () { inject(function (_$rootScope_) { $scope = _$rootScope_.$new(); - var attr = settings && settings.attr ? settings.attr : "management-settings='settings' model='model'>" + body + ""); + element = angular.element("" + body + ""); directive = $compile(element)($scope); $scope.model = formModel; diff --git a/tests/unit/model/remoteProductManagerTest.js b/tests/unit/model/remoteProjectManagerTest.js similarity index 75% rename from tests/unit/model/remoteProductManagerTest.js rename to tests/unit/model/remoteProjectManagerTest.js index f995092..c8fde5e 100644 --- a/tests/unit/model/remoteProductManagerTest.js +++ b/tests/unit/model/remoteProjectManagerTest.js @@ -1,4 +1,4 @@ -describe("model: RemoteProductManager", function () { +describe("model: RemoteProjectManager", function () { var $rootScope, $scope, WsApi, model; var initializeVariables = function (settings) { @@ -10,10 +10,10 @@ describe("model: RemoteProductManager", function () { }; var initializeModel = function (settings) { - inject(function (_RemoteProductManager_) { + inject(function (_RemoteProjectManager_) { $scope = $rootScope.$new(); - model = angular.extend(new _RemoteProductManager_(), dataRemoteProductManager1); + model = angular.extend(new _RemoteProjectManager_(), dataRemoteProjectManager1); }); }; diff --git a/tests/unit/repo/remoteProductManagerRepoTest.js b/tests/unit/repo/remoteProjectManagerRepoTest.js similarity index 89% rename from tests/unit/repo/remoteProductManagerRepoTest.js rename to tests/unit/repo/remoteProjectManagerRepoTest.js index 9ea6261..17caba0 100644 --- a/tests/unit/repo/remoteProductManagerRepoTest.js +++ b/tests/unit/repo/remoteProjectManagerRepoTest.js @@ -1,4 +1,4 @@ -describe("service: RemoteProductManagerRepo", function () { +describe("service: RemoteProjectManagerRepo", function () { var $q, $rootScope, $scope, MockedUser, WsApi, repo; var initializeVariables = function (settings) { @@ -12,10 +12,10 @@ describe("service: RemoteProductManagerRepo", function () { }; var initializeRepo = function (settings) { - inject(function ($injector, _RemoteProductManagerRepo_) { + inject(function ($injector, _RemoteProjectManagerRepo_) { $scope = $rootScope.$new(); - repo = _RemoteProductManagerRepo_; + repo = _RemoteProjectManagerRepo_; }); }; diff --git a/tests/unit/services/productsServiceTest.js b/tests/unit/services/productsServiceTest.js index d19acf7..e973f03 100644 --- a/tests/unit/services/productsServiceTest.js +++ b/tests/unit/services/productsServiceTest.js @@ -44,11 +44,11 @@ describe("service: ProductsService", function () { var methods = [ "getProducts", "getProductsLoading", - "getRemoteProducts", - "getRemoteProductInfo", - "getRemoteProductsLoading", + "getRemoteProjects", + "getRemoteProjectInfo", + "getRemoteProjectsLoading", "refreshProducts", - "refreshRemoteProducts" + "refreshRemoteProjectsForProduct" ]; var serviceMethodExists = function (method) { @@ -91,18 +91,18 @@ describe("service: ProductsService", function () { expect(response).toEqual(false); }); - it("getRemoteProducts should return all remote products for a given product", function () { + it("getRemoteProjects should return all remote projects for a given product", function () { // @todo - //var response = service.getRemoteProducts(); - //expect(response).toEqual(dataRemoteProducts); + //var response = service.getRemoteProjects(); + //expect(response).toEqual(dataRemoteProjects); }); - it("getRemoteProductsLoading should return the current loading status for all remote products", function () { - var response = service.getRemoteProductsLoading(); + it("getRemoteProjectsLoading should return the current loading status for all remote projects", function () { + var response = service.getRemoteProjectsLoading(); expect(response).toBeDefined(); }); - it("getRemoteProductInfo should return all remote product info for a given product", function () { + it("getRemoteProjectInfo should return all remote project info for a given product", function () { var response; // @todo @@ -122,11 +122,11 @@ describe("service: ProductsService", function () { //expect(response.id).toBe(id); }); - it("refreshRemoteProducts should refresh remote products", function () { + it("refreshRemoteProjectsForProduct should refresh remote projects", function () { var response; // @todo - //response = service.refreshRemoteProducts(id); + //response = service.refreshRemoteProjectsForProduct(id); //$scope.$digest(); }); }); diff --git a/tests/unit/services/remoteProductsServiceTest.js b/tests/unit/services/remoteProjectsServiceTest.js similarity index 76% rename from tests/unit/services/remoteProductsServiceTest.js rename to tests/unit/services/remoteProjectsServiceTest.js index 89b7851..42817ca 100644 --- a/tests/unit/services/remoteProductsServiceTest.js +++ b/tests/unit/services/remoteProjectsServiceTest.js @@ -1,4 +1,4 @@ -describe("service: RemoteProductsService", function () { +describe("service: RemoteProjectsService", function () { var $q, $rootScope, $scope, ProductRepo, WsApi, service; var initializeVariables = function (settings) { @@ -12,10 +12,10 @@ describe("service: RemoteProductsService", function () { }; var initializeService = function (settings) { - inject(function ($injector, _RemoteProductsService_) { + inject(function ($injector, _RemoteProjectsService_) { $scope = $rootScope.$new(); - service = _RemoteProductsService_; + service = _RemoteProjectsService_; // ensure that the isReady() is called. if (!$scope.$$phase) { @@ -42,8 +42,8 @@ describe("service: RemoteProductsService", function () { describe("Is the service method", function () { var methods = [ - "getRemoteProductInfo", - "refreshRemoteProductInfo" + "getRemoteProjectInfo", + "refreshRemoteProjectInfo" ]; var serviceMethodExists = function (method) { @@ -76,17 +76,17 @@ describe("service: RemoteProductsService", function () { }); describe("Does the service method", function () { - it("getRemoteProductInfo get remote products", function () { - var remoteProducts = service.getRemoteProductInfo(); - expect(remoteProducts).toEqual(dataRemoteProducts); + it("getRemoteProjectInfo get remote projects", function () { + var remoteProjects = service.getRemoteProjectInfo(); + expect(remoteProjects).toEqual(dataRemoteProjects); }); - it("refreshRemoteProductInfo fetch remote products", function () { + it("refreshRemoteProjectInfo fetch remote projects", function () { deferred = $q.defer(); spyOn(WsApi, "fetch").and.returnValue(deferred.promise); - service.refreshRemoteProductInfo(); - deferred.resolve(dataRemoteProducts); - expect(WsApi.fetch).toHaveBeenCalledWith(apiMapping.RemoteProducts.all); + service.refreshRemoteProjectInfo(); + deferred.resolve(dataRemoteProjects); + expect(WsApi.fetch).toHaveBeenCalledWith(apiMapping.RemoteProjects.all); }); });