moves helper method to votes helper and adds spec

This commit is contained in:
Juanjo Bazán
2015-09-15 14:44:12 +02:00
parent 1c5f77def2
commit 26da253a5d
3 changed files with 20 additions and 9 deletions

View File

@@ -1,14 +1,5 @@
module ApplicationHelper 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? def home_page?
return false if user_signed_in? return false if user_signed_in?
# Using path because fullpath yields false negatives since it contains # Using path because fullpath yields false negatives since it contains

View File

@@ -1,5 +1,14 @@
module VotesHelper 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) def css_classes_for_vote(votes, votable)
case votes[votable.id] case votes[votable.id]
when true when true

View File

@@ -18,4 +18,15 @@ describe VotesHelper do
end end
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 end