diff --git a/app/modules/epics/dashboard/epic-row/epic-row.controller.spec.coffee b/app/modules/epics/dashboard/epic-row/epic-row.controller.spec.coffee index 6e287471..f3df7c64 100644 --- a/app/modules/epics/dashboard/epic-row/epic-row.controller.spec.coffee +++ b/app/modules/epics/dashboard/epic-row/epic-row.controller.spec.coffee @@ -74,7 +74,6 @@ describe "EpicRow", -> }) } - ctrl._calculateProgressBar() expect(ctrl.percentage).to.be.equal("50%") it "calculate progress bar in zero US", () -> diff --git a/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee b/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee index c4025018..419396b5 100644 --- a/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee +++ b/app/modules/epics/dashboard/epics-dashboard.controller.spec.coffee @@ -18,7 +18,6 @@ ### describe "EpicsDashboard", -> - EpicsDashboardCtrl = null provide = null controller = null mocks = {} diff --git a/app/modules/epics/dashboard/story-row/story-row.controller.coffee b/app/modules/epics/dashboard/story-row/story-row.controller.coffee index db82f81b..ce959248 100644 --- a/app/modules/epics/dashboard/story-row/story-row.controller.coffee +++ b/app/modules/epics/dashboard/story-row/story-row.controller.coffee @@ -31,6 +31,9 @@ class StoryRowController else totalTasks = @.story.get('tasks').size totalTasksCompleted = @.story.get('tasks').filter((it) -> it.get("is_closed")).size - @.percentage = "#{totalTasksCompleted * 100 / totalTasks}%" + if totalTasks == 0 + @.percentage = "0%" + else + @.percentage = "#{totalTasksCompleted * 100 / totalTasks}%" module.controller("StoryRowCtrl", StoryRowController) diff --git a/app/modules/epics/dashboard/story-row/story-row.controller.spec.coffee b/app/modules/epics/dashboard/story-row/story-row.controller.spec.coffee new file mode 100644 index 00000000..9f6fe6b5 --- /dev/null +++ b/app/modules/epics/dashboard/story-row/story-row.controller.spec.coffee @@ -0,0 +1,71 @@ +### +# Copyright (C) 2014-2015 Taiga Agile LLC +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +# File: story-row.controller.spec.coffee +### + +describe "StoryRowCtrl", -> + controller = null + + beforeEach -> + module "taigaEpics" + + inject ($controller) -> + controller = $controller + + it "calculate percentage for some closed tasks", () -> + data = { + story: Immutable.fromJS( + tasks: [ + {is_closed: true}, + {is_closed: true}, + {is_closed: true}, + {is_closed: false}, + {is_closed: false}, + ] + ) + } + + ctrl = controller "StoryRowCtrl", null, data + expect(ctrl.percentage).to.be.equal("60%") + + it "calculate percentage for closed story", () -> + data = { + story: Immutable.fromJS( + tasks: [ + {is_closed: true}, + {is_closed: true}, + {is_closed: true}, + {is_closed: false}, + {is_closed: false}, + ] + is_closed: true + ) + } + + ctrl = controller "StoryRowCtrl", null, data + expect(ctrl.percentage).to.be.equal("100%") + + it "calculate percentage for closed story", () -> + data = { + story: Immutable.fromJS( + tasks: [] + ) + } + + ctrl = controller "StoryRowCtrl", null, data + expect(ctrl.percentage).to.be.equal("0%") +