adds conflictive debates

This commit is contained in:
rgarcia
2015-09-07 16:56:22 +02:00
parent b3b4b79f41
commit 4ce95e2735
2 changed files with 51 additions and 0 deletions

View File

@@ -134,6 +134,11 @@ class Debate < ActiveRecord::Base
terms.present? ? where("title ILIKE ? OR description ILIKE ?", "%#{terms}%", "%#{terms}%") : none
end
def conflictive?
return false unless flags_count > 0 && cached_votes_up > 0
flags_count / cached_votes_up.to_f > 0.2
end
protected
def sanitize_description

View File

@@ -308,4 +308,50 @@ describe Debate do
end
end
describe "conflictive debates" do
it "should return true when it has more than 1 flag for 5 positive votes" do
debate.update(flags_count: 1)
debate.update(cached_votes_up: 4)
expect(debate).to be_conflictive
debate.update(flags_count: 2)
debate.update(cached_votes_up: 9)
expect(debate).to be_conflictive
debate.update(flags_count: 3)
debate.update(cached_votes_up: 14)
expect(debate).to be_conflictive
debate.update(flags_count: 20)
debate.update(cached_votes_up: 2)
expect(debate).to be_conflictive
end
it "should return false when it has less than or equal to 1 flag for 5 positive votes" do
debate.update(flags_count: 1)
debate.update(cached_votes_up: 5)
expect(debate).to_not be_conflictive
debate.update(flags_count: 2)
debate.update(cached_votes_up: 10)
expect(debate).to_not be_conflictive
debate.update(flags_count: 2)
debate.update(cached_votes_up: 100)
expect(debate).to_not be_conflictive
end
it "should return false when it has no flags" do
debate.update(flags_count: 0)
expect(debate).to_not be_conflictive
end
it "should return false when it has not votes up" do
debate.update(cached_votes_up: 0)
expect(debate).to_not be_conflictive
end
end
end