From 800c27094432d9d02544512e0bfefd0ec1098269 Mon Sep 17 00:00:00 2001 From: Blade Barringer Date: Fri, 24 Jul 2015 13:42:36 -0500 Subject: [PATCH] Add tests for leave functions --- test/spec/controllers/challengesCtrlSpec.js | 50 ++++++++++++++++++++- 1 file changed, 48 insertions(+), 2 deletions(-) diff --git a/test/spec/controllers/challengesCtrlSpec.js b/test/spec/controllers/challengesCtrlSpec.js index c2167138e8..a38f22e735 100644 --- a/test/spec/controllers/challengesCtrlSpec.js +++ b/test/spec/controllers/challengesCtrlSpec.js @@ -424,11 +424,57 @@ describe('Challenges Controller', function() { }); describe('clickLeave', function() { - it('opens a popover to confirm'); + var clickEvent = { + target: 'button' + }; + + it('sets selectedChal to passed in challenge', function() { + var challenge = specHelper.newChallenge({ + _id: 'popover-challenge-to-leave' + }); + + expect(scope.selectedChal).to.not.exist; + + scope.clickLeave(challenge, clickEvent); + expect(scope.selectedChal).to.eql(challenge); + }); + + it('creates popover element', function() { + var challenge = specHelper.newChallenge({ + _id: 'popover-challenge-to-leave' + }); + + expect(scope.popoverEl).to.not.exist; + scope.clickLeave(challenge, clickEvent); + expect(scope.popoverEl).to.exist; + }); }); describe('leave', function() { - it('(@TODO: write tests)'); + var challenge = specHelper.newChallenge({ + _id: 'challenge-to-leave', + $leave: sandbox.spy() + }); + + var clickEvent = { + target: 'button' + }; + + it('removes selectedChal when cancel is chosen', function() { + scope.clickLeave(challenge, clickEvent); + + expect(scope.selectedChal).to.eql(challenge); + + scope.leave('cancel'); + expect(scope.selectedChal).to.not.exist; + }); + + it('calls challenge.$leave when anything but cancel is chosen', function() { + scope.clickLeave(challenge, clickEvent); + + scope.leave('not-cancel'); + expect(challenge.$leave).to.be.calledOnce; + }); }); }); });