abuse_report_test.rb
1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
require_relative "../test_helper"
class AbuseReportTest < ActiveSupport::TestCase
  def setup
    @reported = fast_create(Profile)
    @reporter = fast_create(Person)
    @abuse_complaint = AbuseComplaint.create!(:reported => @reported)
  end
  attr_accessor :reporter, :abuse_complaint
  should 'ensure presence of complaint, reporter and reported' do
    abuse_report = AbuseReport.new(:reason => 'some reason')
    assert !abuse_report.valid?
    assert abuse_report.invalid?(:reporter)
    assert abuse_report.invalid?(:abuse_complaint)
    abuse_report.reporter = reporter
    abuse_report.abuse_complaint = abuse_complaint
    assert abuse_report.valid?
  end
  should 'not allow more than one report by a user to the same complaint' do
    abuse_report = AbuseReport.new(:reason => 'some reason')
    abuse_report.reporter = reporter
    abuse_report.abuse_complaint = abuse_complaint
    abuse_report.save!
    assert_raise ActiveRecord::RecordInvalid do
      another_abuse = AbuseReport.new(:reason => 'some reason')
      another_abuse.reporter = reporter
      another_abuse.abuse_complaint = abuse_complaint
      another_abuse.save!
    end
  end
end