From de6741956db7c0da23ea6087b3c6e6fd2fdaa98d Mon Sep 17 00:00:00 2001 From: chrisb Date: Thu, 12 Feb 2015 07:22:44 -0800 Subject: [PATCH] route to pipeline config if no executions or configurations --- .../delivery/pipelineExecutions.controller.js | 7 +++- .../pipelineExecutions.controller.spec.js | 32 +++++++++++++++---- .../pipelines/config/pipelineConfig.html | 4 +-- 3 files changed, 34 insertions(+), 9 deletions(-) diff --git a/app/scripts/modules/delivery/pipelineExecutions.controller.js b/app/scripts/modules/delivery/pipelineExecutions.controller.js index acbadb32404..9624cf89b03 100644 --- a/app/scripts/modules/delivery/pipelineExecutions.controller.js +++ b/app/scripts/modules/delivery/pipelineExecutions.controller.js @@ -6,7 +6,7 @@ angular.module('deckApp.delivery.pipelineExecutions.controller', [ 'deckApp.pipelines.config.service', 'deckApp.utils.scrollTo' ]) - .controller('pipelineExecutions', function($scope, $q, executionsService, d3Service, pipelineConfigService, scrollToService) { + .controller('pipelineExecutions', function($scope, $q, $state, executionsService, d3Service, pipelineConfigService, scrollToService) { var controller = this; $scope.viewState = { @@ -122,6 +122,11 @@ angular.module('deckApp.delivery.pipelineExecutions.controller', [ if ($scope.detailsTarget) { scrollToService.scrollTo('execution-' + $scope.detailsTarget, 250); } + var noExecutions = !results.executions || !results.executions.length; + var noConfigurations = !results.configurations.length; + if(noExecutions && noConfigurations) { + $state.go('^.pipelineConfig'); + } } function dataInitializationFailure() { diff --git a/app/scripts/modules/delivery/pipelineExecutions.controller.spec.js b/app/scripts/modules/delivery/pipelineExecutions.controller.spec.js index b7bd6e43750..d4b18495be6 100644 --- a/app/scripts/modules/delivery/pipelineExecutions.controller.spec.js +++ b/app/scripts/modules/delivery/pipelineExecutions.controller.spec.js @@ -6,23 +6,43 @@ describe('Controller: pipelineExecutions', function () { var controller; var scope; + var $state; + var pipelineConfigService; + var executionsService; + var $q; beforeEach( module('deckApp.delivery.pipelineExecutions.controller') ); beforeEach( - inject(function ($rootScope, $controller) { + inject(function ($rootScope, $controller, _$state_, _pipelineConfigService_, _executionsService_, _$q_) { scope = $rootScope.$new(); + $state = { go: angular.noop }; + pipelineConfigService = _pipelineConfigService_; + executionsService = _executionsService_; + $q = _$q_; scope.application = {name: 'foo'}; - controller = $controller('pipelineExecutions', { - $scope: scope - }); + + this.initializeController = function() { + controller = $controller('pipelineExecutions', { + $scope: scope, + $state: $state, + pipelineConfigService: pipelineConfigService, + executionsService: executionsService, + }); + }; }) ); - it('should instantiate the controller', function () { - expect(controller).toBeDefined(); + it('should reroute to pipeline config when no execution history or configurations', function () { + spyOn($state, 'go'); + spyOn(pipelineConfigService, 'getPipelinesForApplication').and.returnValue($q.when({ plain: angular.noop, length: 0 })); + spyOn(executionsService, 'getAll').and.returnValue($q.when([])); + this.initializeController(); + scope.$digest(); + + expect($state.go).toHaveBeenCalledWith('^.pipelineConfig'); }); }); diff --git a/app/scripts/modules/pipelines/config/pipelineConfig.html b/app/scripts/modules/pipelines/config/pipelineConfig.html index 951f68932f4..2b226bae71c 100644 --- a/app/scripts/modules/pipelines/config/pipelineConfig.html +++ b/app/scripts/modules/pipelines/config/pipelineConfig.html @@ -1,8 +1,8 @@