72 lines
1.8 KiB
Ruby
72 lines
1.8 KiB
Ruby
require 'rails_helper'
|
|
|
|
feature 'Moderate Comments' do
|
|
|
|
scenario 'Hide', :js do
|
|
citizen = create(:user)
|
|
moderator = create(:moderator)
|
|
|
|
debate = create(:debate)
|
|
comment = create(:comment, commentable: debate, body: 'SPAM')
|
|
|
|
login_as(moderator.user)
|
|
visit debate_path(debate)
|
|
|
|
within("#comment_#{comment.id}") do
|
|
click_link 'Hide'
|
|
expect(page).to have_css('.comment .faded')
|
|
end
|
|
|
|
login_as(citizen)
|
|
visit debate_path(debate)
|
|
|
|
expect(page).to have_css('.comment', count: 1)
|
|
expect(page).to have_content('This comment has been deleted')
|
|
expect(page).to_not have_content('SPAM')
|
|
end
|
|
|
|
scenario 'Children visible', :js do
|
|
citizen = create(:user)
|
|
moderator = create(:moderator)
|
|
|
|
debate = create(:debate)
|
|
comment = create(:comment, commentable: debate, body: 'SPAM')
|
|
reply = create(:comment, commentable: debate, body: 'Acceptable reply', parent_id: comment.id)
|
|
|
|
login_as(moderator.user)
|
|
visit debate_path(debate)
|
|
|
|
within("#comment_#{comment.id}") do
|
|
first(:link, "Hide").click
|
|
expect(page).to have_css('.comment .faded')
|
|
end
|
|
|
|
login_as(citizen)
|
|
visit debate_path(debate)
|
|
|
|
expect(page).to have_css('.comment', count: 2)
|
|
expect(page).to have_content('This comment has been deleted')
|
|
expect(page).to_not have_content('SPAM')
|
|
|
|
expect(page).to have_content('Acceptable reply')
|
|
end
|
|
|
|
scenario 'Moderator actions' do
|
|
citizen = create(:user)
|
|
moderator = create(:moderator)
|
|
|
|
debate = create(:debate)
|
|
comment = create(:comment, commentable: debate)
|
|
|
|
login_as(moderator.user)
|
|
visit debate_path(debate)
|
|
|
|
expect(page).to have_css("#moderator-comment-actions")
|
|
|
|
login_as(citizen)
|
|
visit debate_path(debate)
|
|
|
|
expect(page).to_not have_css("#moderator-comment-actions")
|
|
end
|
|
|
|
end |