diff --git a/test/spec/controllers/challengesCtrlSpec.js b/test/spec/controllers/challengesCtrlSpec.js index e465336d53..ab96b6fb8c 100644 --- a/test/spec/controllers/challengesCtrlSpec.js +++ b/test/spec/controllers/challengesCtrlSpec.js @@ -210,6 +210,17 @@ describe('Challenges Controller', function() { }); describe('addTask', function() { + var challenge; + + beforeEach(function () { + challenge = specHelper.newChallenge({ + description: 'You are the owner and member', + leader: user._id, + members: [user], + _isMember: true + }); + }); + it('adds default task to array', function() { var taskArray = []; var listDef = { @@ -217,26 +228,27 @@ describe('Challenges Controller', function() { type: 'todo' } - scope.addTask(taskArray, listDef); + scope.addTask(taskArray, listDef, challenge); - expect(taskArray.length).to.eql(1); - expect(taskArray[0].text).to.eql('new todo text'); - expect(taskArray[0].type).to.eql('todo'); + expect(challenge['todos'].length).to.eql(1); + expect(challenge['todos'][0].text).to.eql('new todo text'); + expect(challenge['todos'][0].type).to.eql('todo'); }); it('adds the task to the front of the array', function() { var previousTask = specHelper.newTodo({ text: 'previous task' }); - var taskArray = [previousTask]; + var taskArray = []; + challenge['todos'] = [previousTask]; var listDef = { newTask: 'new todo', type: 'todo' } - scope.addTask(taskArray, listDef); + scope.addTask(taskArray, listDef, challenge); - expect(taskArray.length).to.eql(2); - expect(taskArray[0].text).to.eql('new todo'); - expect(taskArray[1].text).to.eql('previous task'); + expect(challenge['todos'].length).to.eql(2); + expect(challenge['todos'][0].text).to.eql('new todo'); + expect(challenge['todos'][1].text).to.eql('previous task'); }); it('removes text from new task input box', function() { @@ -246,7 +258,7 @@ describe('Challenges Controller', function() { type: 'todo' } - scope.addTask(taskArray, listDef); + scope.addTask(taskArray, listDef, challenge); expect(listDef.newTask).to.not.exist; }); @@ -261,31 +273,37 @@ describe('Challenges Controller', function() { }); describe('removeTask', function() { - var task, list; + var task, challenge; beforeEach(function() { sandbox.stub(window, 'confirm'); task = specHelper.newTodo(); - list = [task]; + challenge = specHelper.newChallenge({ + description: 'You are the owner and member', + leader: user._id, + members: [user], + _isMember: true + }); + challenge['todos'] = [task]; }); it('asks user to confirm deletion', function() { - scope.removeTask(task, list); + scope.removeTask(task, challenge); expect(window.confirm).to.be.calledOnce; }); it('does not remove task from list if not confirmed', function() { window.confirm.returns(false); - scope.removeTask(task, list); + scope.removeTask(task, challenge); - expect(list).to.include(task); + expect(challenge['todos']).to.include(task); }); it('removes task from list', function() { window.confirm.returns(true); - scope.removeTask(task, list); + scope.removeTask(task, challenge); - expect(list).to.not.include(task); + expect(challenge['todos']).to.not.include(task); }); }); diff --git a/website/public/js/controllers/challengesCtrl.js b/website/public/js/controllers/challengesCtrl.js index 00760c9c14..78706c9608 100644 --- a/website/public/js/controllers/challengesCtrl.js +++ b/website/public/js/controllers/challengesCtrl.js @@ -234,11 +234,11 @@ habitrpg.controller("ChallengesCtrl", ['$rootScope','$scope', 'Shared', 'User', var task = Shared.taskDefaults({text: listDef.newTask, type: listDef.type}); Tasks.createChallengeTasks(challenge._id, task); if (!challenge[task.type + 's']) challenge[task.type + 's'] = []; - challenge[task.type + 's'].push(task); + challenge[task.type + 's'].unshift(task); delete listDef.newTask; }; - $scope.removeTask = function(task, list) { + $scope.removeTask = function(task, challenge) { if (!confirm(window.env.t('sureDelete', {taskType: window.env.t(task.type), taskText: task.text}))) return; Tasks.deleteTask(task._id); var index = challenge[task.type + 's'].indexOf(task); diff --git a/website/views/shared/tasks/edit/index.jade b/website/views/shared/tasks/edit/index.jade index ce29ee8896..952fbdbb17 100644 --- a/website/views/shared/tasks/edit/index.jade +++ b/website/views/shared/tasks/edit/index.jade @@ -8,7 +8,7 @@ div(ng-if='task._editing') p a(ng-click='unlink(task, "keep")')=env.t('keepIt') |    - a(ng-click="removeTask(task, obj[list.type+'s'])")=env.t('removeIt') + a(ng-click="removeTask(task, obj")=env.t('removeIt') div(ng-if='task.challenge.broken=="CHALLENGE_DELETED"') p |