86 lines
2.5 KiB
Ruby
86 lines
2.5 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'Debates' do
|
|
|
|
scenario 'Index' do
|
|
3.times { create(:debate) }
|
|
|
|
visit debates_path
|
|
|
|
expect(page).to have_selector('.debate', count: 3)
|
|
within first('.debate') do
|
|
expect(page).to have_content "Debate title"
|
|
expect(page).to have_content "Debate description"
|
|
expect(page).to have_content "Creado el: #{I18n.l Date.today}"
|
|
expect(page).to have_content "por: #{Debate.first.author.name}"
|
|
end
|
|
end
|
|
|
|
scenario 'Show' do
|
|
debate = create(:debate)
|
|
|
|
visit debate_path(debate)
|
|
|
|
expect(page).to have_content "Debate title"
|
|
expect(page).to have_content "Debate description"
|
|
expect(page).to have_content "Creado el: #{I18n.l Date.today}"
|
|
expect(page).to have_content "por: #{debate.author.name}"
|
|
end
|
|
|
|
scenario 'Create' do
|
|
author = create(:user)
|
|
login_as(author)
|
|
|
|
visit new_debate_path
|
|
fill_in 'debate_title', with: 'Acabar con los desahucios'
|
|
fill_in 'debate_description', with: 'Esto es un tema muy importante porque...'
|
|
check 'debate_terms_of_service'
|
|
|
|
click_button 'Crear Debate'
|
|
|
|
expect(page).to have_content 'Debate creado correctamente'
|
|
expect(page).to have_content 'Acabar con los desahucios'
|
|
expect(page).to have_content 'Esto es un tema muy importante porque...'
|
|
expect(page).to have_content "Creado el: #{I18n.l Date.today}"
|
|
expect(page).to have_content "por: #{author.name}"
|
|
end
|
|
|
|
scenario 'Update should not be posible if logged user is not the author' do
|
|
debate = create(:debate)
|
|
expect(debate).to be_editable
|
|
login_as(create(:user))
|
|
|
|
expect {
|
|
visit edit_debate_path(debate)
|
|
}.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
|
|
scenario 'Update should not be posible if debate is not editable' do
|
|
debate = create(:debate)
|
|
vote = create(:vote, votable: debate)
|
|
expect(debate).to_not be_editable
|
|
login_as(debate.author)
|
|
|
|
expect {
|
|
visit edit_debate_path(debate)
|
|
}.to raise_error ActiveRecord::RecordNotFound
|
|
end
|
|
|
|
scenario 'Update should be posible for the author of an editable debate' do
|
|
debate = create(:debate)
|
|
login_as(debate.author)
|
|
|
|
visit debate_path(debate)
|
|
click_link 'Edit'
|
|
fill_in 'debate_title', with: 'Dimisión Rajoy'
|
|
fill_in 'debate_description', with: 'Podríamos...'
|
|
|
|
click_button 'Actualizar Debate'
|
|
|
|
expect(page).to have_content 'Debate actualizado correctamente'
|
|
expect(page).to have_content 'Dimisión Rajoy'
|
|
expect(page).to have_content 'Podríamos...'
|
|
end
|
|
|
|
end
|