Remove people proposal model
This model isn't used anywhere, since it was created as part of a
feature which couldn't be completed.
This commit reverts commit 46e5d6a9.
This commit is contained in:
@@ -1,107 +0,0 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Legislation::PeopleProposal do
|
||||
let(:people_proposal) { build(:legislation_people_proposal) }
|
||||
|
||||
it "is valid" do
|
||||
expect(people_proposal).to be_valid
|
||||
end
|
||||
|
||||
it "is not valid without a process" do
|
||||
people_proposal.process = nil
|
||||
expect(people_proposal).not_to be_valid
|
||||
end
|
||||
|
||||
it "is not valid without an author" do
|
||||
people_proposal.author = nil
|
||||
expect(people_proposal).not_to be_valid
|
||||
end
|
||||
|
||||
it "is not valid without a title" do
|
||||
people_proposal.title = nil
|
||||
expect(people_proposal).not_to be_valid
|
||||
end
|
||||
|
||||
it "is not valid without a summary" do
|
||||
people_proposal.summary = nil
|
||||
expect(people_proposal).not_to be_valid
|
||||
end
|
||||
|
||||
describe "#hot_score" do
|
||||
let(:now) { Time.current }
|
||||
|
||||
it "period is correctly calculated to get exact votes per day" do
|
||||
new_people_proposal = create(:legislation_people_proposal, created_at: 23.hours.ago)
|
||||
2.times { new_people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
expect(new_people_proposal.hot_score).to be 2
|
||||
|
||||
old_people_proposal = create(:legislation_people_proposal, created_at: 25.hours.ago)
|
||||
2.times { old_people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
expect(old_people_proposal.hot_score).to be 1
|
||||
|
||||
older_people_proposal = create(:legislation_people_proposal, created_at: 49.hours.ago)
|
||||
3.times { older_people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
expect(old_people_proposal.hot_score).to be 1
|
||||
end
|
||||
|
||||
it "remains the same for not voted people_proposals" do
|
||||
new = create(:legislation_people_proposal, created_at: now)
|
||||
old = create(:legislation_people_proposal, created_at: 1.day.ago)
|
||||
older = create(:legislation_people_proposal, created_at: 2.months.ago)
|
||||
expect(new.hot_score).to be 0
|
||||
expect(old.hot_score).to be 0
|
||||
expect(older.hot_score).to be 0
|
||||
end
|
||||
|
||||
it "increases for people_proposals with more positive votes" do
|
||||
more_positive_votes = create(:legislation_people_proposal)
|
||||
2.times { more_positive_votes.vote_by(voter: create(:user), vote: "yes") }
|
||||
|
||||
less_positive_votes = create(:legislation_people_proposal)
|
||||
less_positive_votes.vote_by(voter: create(:user), vote: "yes")
|
||||
|
||||
expect(more_positive_votes.hot_score).to be > less_positive_votes.hot_score
|
||||
end
|
||||
|
||||
it "increases for people_proposals with the same amount of positive votes within less days" do
|
||||
newer_people_proposal = create(:legislation_people_proposal, created_at: now)
|
||||
5.times { newer_people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
|
||||
older_people_proposal = create(:legislation_people_proposal, created_at: 1.day.ago)
|
||||
5.times { older_people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
|
||||
expect(newer_people_proposal.hot_score).to be > older_people_proposal.hot_score
|
||||
end
|
||||
|
||||
it "increases for people_proposals voted within the period (last month by default)" do
|
||||
newer_people_proposal = create(:legislation_people_proposal, created_at: 2.months.ago)
|
||||
20.times { create(:vote, votable: newer_people_proposal, created_at: 3.days.ago) }
|
||||
|
||||
older_people_proposal = create(:legislation_people_proposal, created_at: 2.months.ago)
|
||||
20.times { create(:vote, votable: older_people_proposal, created_at: 40.days.ago) }
|
||||
|
||||
expect(newer_people_proposal.hot_score).to be > older_people_proposal.hot_score
|
||||
end
|
||||
|
||||
describe "actions which affect it" do
|
||||
let(:people_proposal) { create(:legislation_people_proposal) }
|
||||
|
||||
before do
|
||||
5.times { people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
2.times { people_proposal.vote_by(voter: create(:user), vote: "no") }
|
||||
end
|
||||
|
||||
it "increases with positive votes" do
|
||||
previous = people_proposal.hot_score
|
||||
3.times { people_proposal.vote_by(voter: create(:user), vote: "yes") }
|
||||
expect(previous).to be < people_proposal.hot_score
|
||||
end
|
||||
|
||||
it "decreases with negative votes" do
|
||||
previous = people_proposal.hot_score
|
||||
3.times { people_proposal.vote_by(voter: create(:user), vote: "no") }
|
||||
expect(previous).to be > people_proposal.hot_score
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user