93 lines
2.7 KiB
Ruby
93 lines
2.7 KiB
Ruby
# Copyright (c) 2010-2011, Diaspora Inc. This file is
|
|
# licensed under the Affero General Public License version 3 or later. See
|
|
# the COPYRIGHT file.
|
|
|
|
require 'spec_helper'
|
|
|
|
describe Report, :type => :model do
|
|
before do
|
|
#:report => { :item_id => @message.id, :item_type => 'post', :text => 'offensive content' }
|
|
@user = bob
|
|
@bob_post = @user.post(:status_message, :text => "hello", :to => @user.aspects.first.id)
|
|
@bob_comment = @user.comment!(@bob_post, "welcome")
|
|
|
|
@valid_post_report = {
|
|
item_id: @bob_post.id, item_type: "Post",
|
|
text: "offensive content"
|
|
}
|
|
@valid_comment_report = {
|
|
item_id: @bob_comment.id, item_type: "Comment",
|
|
text: "offensive content"
|
|
}
|
|
end
|
|
|
|
describe '#validation' do
|
|
it 'validates that post ID is required' do
|
|
report = @valid_post_report
|
|
report.delete(:item_id)
|
|
expect(@user.reports.build(report)).not_to be_valid
|
|
end
|
|
|
|
it 'validates that post type is required' do
|
|
report = @valid_post_report
|
|
report[:item_type] = nil
|
|
expect(@user.reports.build(report)).not_to be_valid
|
|
end
|
|
|
|
it 'validates that post does exist' do
|
|
report = @valid_post_report
|
|
report[:item_id] = 0;
|
|
expect(@user.reports.build(report)).not_to be_valid
|
|
end
|
|
|
|
it 'validates that comment does exist' do
|
|
report = @valid_comment_report
|
|
report[:item_id] = 0;
|
|
expect(@user.reports.build(report)).not_to be_valid
|
|
end
|
|
|
|
it 'validates that entry does not exist' do
|
|
expect(@user.reports.build(@valid_post_report)).to be_valid
|
|
end
|
|
|
|
it 'validates that entry does exist' do
|
|
@user.reports.create(@valid_post_report)
|
|
expect(@user.reports.build(@valid_post_report)).not_to be_valid
|
|
end
|
|
end
|
|
|
|
describe '#destroy_reported_item' do
|
|
before(:each) do
|
|
@post_report = @user.reports.create(@valid_post_report)
|
|
@comment_report = @user.reports.create(@valid_comment_report)
|
|
end
|
|
|
|
describe '.post' do
|
|
it 'should destroy it' do
|
|
expect {
|
|
@post_report.destroy_reported_item
|
|
}.to change { Post.count }.by(-1)
|
|
end
|
|
|
|
it 'should be marked' do
|
|
expect {
|
|
@post_report.destroy_reported_item
|
|
}.to change { Report.where(@valid_post_report).first.reviewed }.to(true).from(false)
|
|
end
|
|
end
|
|
|
|
describe '.comment' do
|
|
it 'should destroy it' do
|
|
expect {
|
|
@comment_report.destroy_reported_item
|
|
}.to change { Comment.count }.by(-1)
|
|
end
|
|
|
|
it 'should be marked' do
|
|
expect {
|
|
@comment_report.destroy_reported_item
|
|
}.to change { Report.where(@valid_comment_report).first.reviewed }.to(true).from(false)
|
|
end
|
|
end
|
|
end
|
|
end
|