From 786c6d974995c7fc6d768ce436873c520c69cdce Mon Sep 17 00:00:00 2001 From: Adam Bradley Date: Wed, 12 Nov 2014 11:19:08 -0600 Subject: [PATCH] feat($ionicConfig): chaining config properties --- js/angular/service/ionicConfig.js | 1 + test/unit/angular/service/ionicConfig.unit.js | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/js/angular/service/ionicConfig.js b/js/angular/service/ionicConfig.js index af9245b019..cc10de9eff 100644 --- a/js/angular/service/ionicConfig.js +++ b/js/angular/service/ionicConfig.js @@ -414,6 +414,7 @@ IonicModule providerObj[namespace] = function(newValue) { if (arguments.length) { configObj[namespace] = newValue; + return providerObj; } if (configObj[namespace] == PLATFORM) { // if the config is set to 'platform', then get this config's platform value diff --git a/test/unit/angular/service/ionicConfig.unit.js b/test/unit/angular/service/ionicConfig.unit.js index dcefdc3579..db482c81ce 100644 --- a/test/unit/angular/service/ionicConfig.unit.js +++ b/test/unit/angular/service/ionicConfig.unit.js @@ -127,4 +127,19 @@ describe('$ionicConfigProvider', function() { }); }); + it('should set defaults by chaining', function() { + module('ionic', function($ionicConfigProvider) { + $ionicConfigProvider.navBar.transition('my-transition') + .alignTitle('right') + .positionPrimaryButtons('right') + .positionSecondaryButtons('left'); + }); + inject(function($ionicConfig) { + expect($ionicConfig.navBar.transition()).toBe('my-transition'); + expect($ionicConfig.navBar.alignTitle()).toBe('right'); + expect($ionicConfig.navBar.positionPrimaryButtons()).toBe('right'); + expect($ionicConfig.navBar.positionSecondaryButtons()).toBe('left'); + }); + }); + });