adds specs for moderation [#136]

This commit is contained in:
rgarcia
2015-08-17 13:39:58 +02:00
parent f31ed2940d
commit d9a31b7158
6 changed files with 156 additions and 1 deletions

View File

@@ -13,6 +13,10 @@ FactoryGirl.define do
description 'Debate description'
terms_of_service '1'
association :author, factory: :user
trait :hidden do
hidden_at Time.now
end
end
factory :vote do
@@ -25,6 +29,10 @@ FactoryGirl.define do
association :commentable, factory: :debate
user
body 'Comment body'
trait :hidden do
hidden_at Time.now
end
end
factory :administrator do

View File

@@ -0,0 +1,28 @@
require 'rails_helper'
feature 'Admin comments' do
scenario 'Restore', :js do
citizen = create(:user)
admin = create(:administrator)
debate = create(:debate)
comment = create(:comment, :hidden, commentable: debate, body: 'Not really SPAM')
login_as(admin.user)
visit admin_comments_path
within("#comment_#{comment.id}") do
first(:link, "Restore").click
end
expect(page).to have_content 'The comment has been restored'
login_as(citizen)
visit debate_path(debate)
expect(page).to have_css('.comment', count: 1)
expect(page).to have_content('Not really SPAM')
end
end

View File

@@ -0,0 +1,23 @@
require 'rails_helper'
feature 'Admin debates' do
scenario 'Restore', :js do
citizen = create(:user)
admin = create(:administrator)
debate = create(:debate, :hidden)
login_as(admin.user)
visit admin_debate_path(debate)
click_link 'Restore'
expect(page).to have_content 'The debate has been restored'
login_as(citizen)
visit debates_path
expect(page).to have_css('.debate', count: 1)
end
end

View File

@@ -77,7 +77,7 @@ feature 'Comments' do
click_button 'Publish reply'
end
within("#comment-#{comment.id}") do
within "#comment_#{comment.id}" do
expect(page).to have_content 'It will be done next week.'
end

View File

@@ -0,0 +1,72 @@
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

View File

@@ -0,0 +1,24 @@
require 'rails_helper'
feature 'Moderate debates' do
scenario 'Hide', :js do
citizen = create(:user)
moderator = create(:moderator)
debate = create(:debate)
login_as(moderator.user)
visit debate_path(debate)
within("#debate_#{debate.id}") do
click_link 'Hide'
end
login_as(citizen)
visit debates_path
expect(page).to have_css('.debate', count: 0)
end
end