Merge Vote.in with Vote.for_debates
This commit is contained in:
@@ -77,8 +77,8 @@ class User < ActiveRecord::Base
|
||||
end
|
||||
|
||||
def debate_votes(debates)
|
||||
voted = votes.for_debates.in(debates)
|
||||
voted.each_with_object({}) { |v, _| _[v.votable_id] = v.value }
|
||||
voted = votes.for_debates(debates)
|
||||
voted.each_with_object({}) { |v, h| h[v.votable_id] = v.value }
|
||||
end
|
||||
|
||||
def administrator?
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
ActsAsVotable::Vote.class_eval do
|
||||
def self.for_debates
|
||||
where(votable_type: 'Debate')
|
||||
end
|
||||
|
||||
def self.in(debates)
|
||||
where(votable_id: debates)
|
||||
def self.for_debates(debates)
|
||||
where(votable_type: 'Debate', votable_id: debates)
|
||||
end
|
||||
|
||||
def value
|
||||
vote_flag
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,34 +3,31 @@ require 'rails_helper'
|
||||
describe 'Vote' do
|
||||
|
||||
describe '#for_debates' do
|
||||
it 'returns votes for debates' do
|
||||
debate = create(:debate)
|
||||
create(:vote, votable: debate)
|
||||
|
||||
expect(Vote.for_debates.count).to eq(1)
|
||||
end
|
||||
|
||||
it 'does not returns votes for other votables' do
|
||||
debate = create(:debate)
|
||||
comment = create(:comment)
|
||||
create(:vote, votable: comment)
|
||||
|
||||
expect(Vote.for_debates.count).to eq(0)
|
||||
end
|
||||
end
|
||||
|
||||
describe '#in' do
|
||||
it 'returns debates send in parameters' do
|
||||
debate = create(:debate)
|
||||
create(:vote, votable: debate)
|
||||
|
||||
expect(Vote.in(debate).count).to eq(1)
|
||||
expect(Vote.for_debates(debate).count).to eq(0)
|
||||
end
|
||||
|
||||
it 'does not return debates not in parameters' do
|
||||
debate = create(:debate)
|
||||
create(:vote, votable: debate)
|
||||
it 'returns votes only for debates in parameters' do
|
||||
debate1 = create(:debate)
|
||||
debate2 = create(:debate)
|
||||
create(:vote, votable: debate1)
|
||||
|
||||
expect(Vote.in([]).count).to eq(0)
|
||||
expect(Vote.for_debates(debate1).count).to eq(1)
|
||||
expect(Vote.for_debates(debate2).count).to eq(0)
|
||||
end
|
||||
|
||||
it 'accepts more than 1 debate' do
|
||||
debate1 = create(:debate)
|
||||
debate2 = create(:debate)
|
||||
debate3 = create(:debate)
|
||||
create(:vote, votable: debate1)
|
||||
create(:vote, votable: debate3)
|
||||
|
||||
expect(Vote.for_debates([debate1, debate2]).count).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -43,4 +40,4 @@ describe 'Vote' do
|
||||
expect(vote.value).to eq(false)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user