adds scope & boolean method for retired proposals
This commit is contained in:
@@ -42,6 +42,7 @@ class Proposal < ActiveRecord::Base
|
||||
scope :sort_by_relevance, -> { all }
|
||||
scope :sort_by_flags, -> { order(flags_count: :desc, updated_at: :desc) }
|
||||
scope :last_week, -> { where("proposals.created_at >= ?", 7.days.ago)}
|
||||
scope :retired, -> { where.not(retired_at: nil) }
|
||||
|
||||
def to_param
|
||||
"#{id}-#{title}".parameterize
|
||||
@@ -105,6 +106,10 @@ class Proposal < ActiveRecord::Base
|
||||
user && user.level_two_or_three_verified?
|
||||
end
|
||||
|
||||
def retired?
|
||||
retired_at.present?
|
||||
end
|
||||
|
||||
def register_vote(user, vote_value)
|
||||
if votable_by?(user)
|
||||
vote_by(voter: user, vote: vote_value)
|
||||
|
||||
@@ -741,4 +741,23 @@ describe Proposal do
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user