From 9468d7239dd6eed4a3a2945f6761f7a2fa97222b Mon Sep 17 00:00:00 2001 From: cookfront Date: Fri, 28 Nov 2014 18:22:59 +0800 Subject: [PATCH] fix(buttons): add unit tests for buttons Adds unit tests to buttons, helping bring test coverage to 100% Closes #3030 --- src/buttons/test/buttons.spec.js | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/buttons/test/buttons.spec.js b/src/buttons/test/buttons.spec.js index 4774b8b5c8..bd1e817c24 100644 --- a/src/buttons/test/buttons.spec.js +++ b/src/buttons/test/buttons.spec.js @@ -80,6 +80,34 @@ describe('buttons', function () { expect(btn).toHaveClass('active'); expect($scope.model).toEqual(2); }); + + describe('setting buttonConfig', function () { + var originalActiveClass, originalToggleEvent; + + beforeEach(inject(function(buttonConfig) { + originalActiveClass = buttonConfig.activeClass; + originalToggleEvent = buttonConfig.toggleEvent; + buttonConfig.activeClass = false; + buttonConfig.toggleEvent = false; + })); + + afterEach(inject(function(buttonConfig) { + // return it to the original value + buttonConfig.activeClass = originalActiveClass; + buttonConfig.toggleEvent = originalToggleEvent; + })); + + it('should use default config when buttonConfig.activeClass and buttonConfig.toggleEvent is false', function () { + $scope.model = false; + var btn = compileButton('', $scope); + expect(btn).not.toHaveClass('active'); + + $scope.model = true; + $scope.$digest(); + expect(btn).toHaveClass('active'); + }); + }); + }); describe('radio', function () { @@ -137,6 +165,18 @@ describe('buttons', function () { expect(btns.eq(1)).toHaveClass('active'); }); + it('should do nothing when click active radio', function () { + $scope.model = 1; + var btns = compileButtons('', $scope); + expect(btns.eq(0)).toHaveClass('active'); + expect(btns.eq(1)).not.toHaveClass('active'); + + btns.eq(0).click(); + $scope.$digest(); + expect(btns.eq(0)).toHaveClass('active'); + expect(btns.eq(1)).not.toHaveClass('active'); + }); + describe('uncheckable', function () { //model -> UI it('should set active class based on model', function () {