Skip to content
Snippets Groups Projects
Commit da7c1444 authored by Dan Rowden's avatar Dan Rowden Committed by Alfredo Sumaran
Browse files

Updated milestone count helper plus tests

parent c1f508b0
No related branches found
No related tags found
1 merge request!5946Milestone tab badges
Loading
Loading
@@ -38,12 +38,12 @@ module MilestonesHelper
# Returns count of milestones for different states
# Uses explicit hash keys as the 'opened' state URL params differs from the db value
# and we need to add the total
def milestone_counts(project:)
counts = @project.milestones.reorder(nil).group(:state).count()
def milestone_counts(milestones)
counts = milestones.reorder(nil).group(:state).count
{
opened: counts['active'],
closed: counts['closed'],
all: counts['active'] + counts['closed']
all: counts.values.sum
}
end
 
Loading
Loading
- counts = milestone_counts(project: @project)
- counts = milestone_counts(@project.milestones)
 
%ul.nav-links
%li{class: ("active" if params[:state].blank? || params[:state] == 'opened')}
Loading
Loading
Loading
Loading
@@ -3,10 +3,15 @@ FactoryGirl.define do
title
project
 
trait :active do
state "active"
end
trait :closed do
state :closed
state "closed"
end
 
factory :active_milestone, traits: [:active]
factory :closed_milestone, traits: [:closed]
end
end
require 'spec_helper'
describe MilestonesHelper do
describe '#milestone_counts' do
let(:project) { FactoryGirl.create(:project) }
let(:milestone_1) { FactoryGirl.create(:active_milestone, project: project) }
let(:milestone_2) { FactoryGirl.create(:active_milestone, project: project) }
let(:milestone_3) { FactoryGirl.create(:closed_milestone, project: project) }
let(:counts) { helper.milestone_counts(project.milestones) }
it 'returns a hash containing three items' do
expect(counts.length).to eq 3
end
it 'returns a hash containing "opened" key' do
expect(counts.has_key?(:opened)).to eq true
end
it 'returns a hash containing "closed" key' do
expect(counts.has_key?(:closed)).to eq true
end
it 'returns a hash containing "all" key' do
expect(counts.has_key?(:all)).to eq true
end
# This throws a "NoMethodError: undefined method `+' for nil:NilClass" error for line 27; can't figure out why it can't find the keys in the hash
# it 'shows "all" object is the sum of "opened" and "closed" objects' do
# total = counts[:opened] + counts[:closed]
# expect(counts[:all]).to eq total
# end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment