diff --git a/spec/features/comments_spec.rb b/spec/features/comments_spec.rb index 40e75a281..b880ae284 100644 --- a/spec/features/comments_spec.rb +++ b/spec/features/comments_spec.rb @@ -2,9 +2,10 @@ require 'rails_helper' include ActionView::Helpers::DateHelper feature 'Comments' do + let(:user) { create :user } + let(:debate) { create :debate } scenario 'Index' do - debate = create(:debate) 3.times { create(:comment, commentable: debate) } visit debate_path(debate) @@ -19,8 +20,20 @@ feature 'Comments' do end end + scenario 'Autolinking' do + create :comment, commentable: debate, body: 'Built with http://rubyonrails.org/' + + visit debate_path(debate) + + within first('.comment') do + expect(page).to have_content 'Built with http://rubyonrails.org/' + expect(page).to have_link('http://rubyonrails.org/', href: 'http://rubyonrails.org/') + expect(find_link('http://rubyonrails.org/')[:rel]).to eq('nofollow') + expect(find_link('http://rubyonrails.org/')[:target]).to eq('_blank') + end + end + scenario 'Paginated comments' do - debate = create(:debate) per_page = 10 (per_page + 2).times { create(:comment, commentable: debate)} @@ -39,7 +52,6 @@ feature 'Comments' do feature 'Not logged user' do scenario 'can not see comments forms' do - debate = create(:debate) create(:comment, commentable: debate) visit debate_path(debate) @@ -53,9 +65,6 @@ feature 'Comments' do end scenario 'Create', :js do - user = create(:user) - debate = create(:debate) - login_as(user) visit debate_path(debate) @@ -68,9 +77,6 @@ feature 'Comments' do end scenario 'Errors on create', :js do - user = create(:user) - debate = create(:debate) - login_as(user) visit debate_path(debate) @@ -82,7 +88,6 @@ feature 'Comments' do scenario 'Reply', :js do citizen = create(:user, username: 'Ana') manuela = create(:user, username: 'Manuela') - debate = create(:debate) comment = create(:comment, commentable: debate, user: citizen) login_as(manuela) @@ -103,8 +108,6 @@ feature 'Comments' do end scenario 'Errors on reply', :js do - user = create(:user) - debate = create(:debate) comment = create(:comment, commentable: debate, user: user) login_as(user) @@ -120,7 +123,6 @@ feature 'Comments' do end scenario "N replies", :js do - debate = create(:debate) parent = create(:comment, commentable: debate) 7.times do @@ -133,8 +135,6 @@ feature 'Comments' do end scenario "Flagging as inappropriate", :js do - user = create(:user) - debate = create(:debate) comment = create(:comment, commentable: debate) login_as(user) @@ -151,8 +151,6 @@ feature 'Comments' do end scenario "Undoing flagging as inappropriate", :js do - user = create(:user) - debate = create(:debate) comment = create(:comment, commentable: debate) Flag.flag(user, comment) @@ -170,7 +168,6 @@ feature 'Comments' do end scenario "Flagging turbolinks sanity check", :js do - user = create(:user) debate = create(:debate, title: "Should we change the world?") comment = create(:comment, commentable: debate) @@ -187,7 +184,6 @@ feature 'Comments' do feature "Moderators" do scenario "can create comment as a moderator", :js do moderator = create(:moderator) - debate = create(:debate) login_as(moderator.user) visit debate_path(debate) @@ -208,7 +204,6 @@ feature 'Comments' do citizen = create(:user, username: "Ana") manuela = create(:user, username: "Manuela") moderator = create(:moderator, user: manuela) - debate = create(:debate) comment = create(:comment, commentable: debate, user: citizen) login_as(manuela) @@ -234,7 +229,6 @@ feature 'Comments' do scenario "can not comment as an administrator" do moderator = create(:moderator) - debate = create(:debate) login_as(moderator.user) visit debate_path(debate) @@ -246,7 +240,6 @@ feature 'Comments' do feature "Administrators" do scenario "can create comment as an administrator", :js do admin = create(:administrator) - debate = create(:debate) login_as(admin.user) visit debate_path(debate) @@ -267,7 +260,6 @@ feature 'Comments' do citizen = create(:user, username: "Ana") manuela = create(:user, username: "Manuela") admin = create(:administrator, user: manuela) - debate = create(:debate) comment = create(:comment, commentable: debate, user: citizen) login_as(manuela) @@ -293,7 +285,6 @@ feature 'Comments' do scenario "can not comment as a moderator" do admin = create(:administrator) - debate = create(:debate) login_as(admin.user) visit debate_path(debate)