diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 59a604810..1d56ae4d3 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,14 +1,5 @@ module ApplicationHelper - def votes_percentage(vote, debate) - return "0%" if debate.total_votes == 0 - if vote == 'likes' - debate.likes.percent_of(debate.total_votes).to_s + "%" - elsif vote == 'dislikes' - (100 - debate.likes.percent_of(debate.total_votes)).to_s + "%" - end - end - def home_page? return false if user_signed_in? # Using path because fullpath yields false negatives since it contains diff --git a/app/helpers/votes_helper.rb b/app/helpers/votes_helper.rb index dafb108c7..c4c3d76a1 100644 --- a/app/helpers/votes_helper.rb +++ b/app/helpers/votes_helper.rb @@ -1,5 +1,14 @@ module VotesHelper + def votes_percentage(vote, debate) + return "0%" if debate.total_votes == 0 + if vote == 'likes' + debate.likes.percent_of(debate.total_votes).to_s + "%" + elsif vote == 'dislikes' + (100 - debate.likes.percent_of(debate.total_votes)).to_s + "%" + end + end + def css_classes_for_vote(votes, votable) case votes[votable.id] when true diff --git a/spec/helpers/votes_helper_spec.rb b/spec/helpers/votes_helper_spec.rb index 96be3b3fe..d695b881a 100644 --- a/spec/helpers/votes_helper_spec.rb +++ b/spec/helpers/votes_helper_spec.rb @@ -18,4 +18,15 @@ describe VotesHelper do end end + describe "#votes_percentage" do + it "should always sum 100%" do + debate = create(:debate) + create_list(:vote, 8, votable: debate, vote_flag: true) + create_list(:vote, 3, votable: debate, vote_flag: false) + + expect(votes_percentage('likes', debate)).to eq("72%") + expect(votes_percentage('dislikes', debate)).to eq("28%") + end + end + end \ No newline at end of file