diff --git a/app/models/vote.rb b/app/models/vote.rb new file mode 100644 index 000000000..47dd3f007 --- /dev/null +++ b/app/models/vote.rb @@ -0,0 +1,2 @@ +class Vote < ActsAsVotable::Vote +end \ No newline at end of file diff --git a/spec/factories.rb b/spec/factories.rb index 58f320ea7..eb65ecdca 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -4,4 +4,11 @@ FactoryGirl.define do description 'Debate description' terms_of_service '1' end + + factory :vote do + association :votable, factory: :debate + association :voter, factory: :user + vote_flag true + end + end \ No newline at end of file diff --git a/spec/features/votes_spec.rb b/spec/features/votes_spec.rb new file mode 100644 index 000000000..e5e068bcc --- /dev/null +++ b/spec/features/votes_spec.rb @@ -0,0 +1,49 @@ +require 'rails_helper' + +feature 'Votes', :focus do + + background do + @manuela = create(:user) + @pablo = create(:user) + @debate = create(:debate) + + login_as(@manuela) + visit debate_path(@debate) + end + + scenario 'Show' do + vote = create(:vote, voter: @manuela, votable: @debate, vote_flag: true) + vote = create(:vote, voter: @pablo, votable: @debate, vote_flag: false) + + visit debate_path(@debate) + + expect(page).to have_content "Votos 2" + + within('#in_favor') do + expect(page).to have_content "50%" + end + + within('#against') do + expect(page).to have_content "50%" + end + end + + scenario 'Create' do + click_link 'up' + expect(page).to have_content "Gracias por votar" + end + + scenario 'Update' do + click_link 'up' + click_link 'down' + expect(page).to have_content "Gracias por votar" + end + + scenario 'Trying to vote multiple times' do + click_link 'up' + click_link 'up' + expect(page).to have_content "Tu voto ya ha sido registrado" + expect(page).to have_content "Votos 1" + end + +end \ No newline at end of file