Extract methods in votes components

This way we can make the view code a bit easier to read.

We're also changing the order of the conditions a little bit so we only
check for the presence of a current user once.

To make sure we aren't breaking anything with these changes, we're
adding some tests. We're also replacing one system test checking content
with a component test, since component tests are much faster.
This commit is contained in:
Javi Martín
2021-09-29 04:06:51 +02:00
parent 70f717e564
commit 4e3b3f2028
10 changed files with 163 additions and 56 deletions

View File

@@ -10,4 +10,18 @@ class Proposals::VotesComponent < ApplicationComponent
def vote_url
@vote_url || vote_proposal_path(proposal, value: "yes")
end
private
def voted?
current_user&.voted_for?(proposal)
end
def can_vote?
proposal.votable_by?(current_user)
end
def organization?
current_user&.organization?
end
end