adds scope & boolean method for retired proposals

This commit is contained in:
Juanjo Bazán
2016-04-20 13:51:53 +02:00
parent 69d2c14b49
commit f36f0ca8c8
2 changed files with 24 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ class Proposal < ActiveRecord::Base
scope :sort_by_relevance, -> { all } scope :sort_by_relevance, -> { all }
scope :sort_by_flags, -> { order(flags_count: :desc, updated_at: :desc) } scope :sort_by_flags, -> { order(flags_count: :desc, updated_at: :desc) }
scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)} scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)}
scope :retired, -> { where.not(retired_at: nil) }
def to_param def to_param
"#{id}-#{title}".parameterize "#{id}-#{title}".parameterize
@@ -105,6 +106,10 @@ class Proposal < ActiveRecord::Base
user && user.level_two_or_three_verified? user && user.level_two_or_three_verified?
end end
def retired?
retired_at.present?
end
def register_vote(user, vote_value) def register_vote(user, vote_value)
if votable_by?(user) if votable_by?(user)
vote_by(voter: user, vote: vote_value) vote_by(voter: user, vote: vote_value)

View File

@@ -741,4 +741,23 @@ describe Proposal do
end end
end end
describe "retired" do
before(:all) do
@proposal1 = create(:proposal)
@proposal2 = create(:proposal, retired_at: Time.now)
end
it "retired? is true" do
expect(@proposal1.retired?).to eq false
expect(@proposal2.retired?).to eq true
end
it "scope retired" do
retired = Proposal.retired
expect(retired.size).to eq(1)
expect(retired.first).to eq(@proposal2)
end
end
end end