moves helper method to votes helper and adds spec
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
Reference in New Issue
Block a user