diff --git a/test/spec/controllers/tasksCtrlSpec.js b/test/spec/controllers/tasksCtrlSpec.js index 28ffa79f0b..ea6da32897 100644 --- a/test/spec/controllers/tasksCtrlSpec.js +++ b/test/spec/controllers/tasksCtrlSpec.js @@ -1,12 +1,18 @@ 'use strict'; describe('Tasks Controller', function() { - var $rootScope, shared, scope, user, ctrl; + var $rootScope, shared, scope, user, User, ctrl; beforeEach(function() { user = specHelper.newUser(); + User = { + user: user + }; + User.user.ops = { + deleteTask: sandbox.stub(), + }; module(function($provide) { - $provide.value('User', {user: user}); + $provide.value('User', User); $provide.value('Guide', {}); }); @@ -14,9 +20,9 @@ describe('Tasks Controller', function() { scope = $rootScope.$new(); shared = Shared; - $controller('RootCtrl', {$scope: scope, User: {user: user}}); + $controller('RootCtrl', {$scope: scope, User: User}); - ctrl = $controller('TasksCtrl', {$scope: scope, User: {user: user}}); + ctrl = $controller('TasksCtrl', {$scope: scope, User: User}); }); }); @@ -29,6 +35,32 @@ describe('Tasks Controller', function() { }); }); + describe('removeTask', function() { + var task; + + beforeEach(function() { + sandbox.stub(window, 'confirm'); + task = specHelper.newTodo(); + }); + + it('asks user to confirm deletion', function() { + scope.removeTask(task); + expect(window.confirm).to.be.calledOnce; + }); + + it('does not remove task if not confirmed', function() { + window.confirm.returns(false); + scope.removeTask(task); + expect(user.ops.deleteTask).to.not.be.called; + }); + + it('removes task', function() { + window.confirm.returns(true); + scope.removeTask(task); + expect(user.ops.deleteTask).to.be.calledOnce; + }); + }); + describe('watch to updateStore', function() { it('updates itemStore when user gear changes', function() { sinon.stub(shared, 'updateStore').returns({item: true});