diff --git a/app/views/api/abuses/create.json.jbuilder b/app/views/api/abuses/create.json.jbuilder index c45f25a2a..2caa02c0e 100644 --- a/app/views/api/abuses/create.json.jbuilder +++ b/app/views/api/abuses/create.json.jbuilder @@ -1,3 +1,3 @@ -json.admin do +json.reporting do json.extract! @abuse, :id, :signaled_id, :signaled_type end diff --git a/test/integration/abuses_test.rb b/test/integration/abuses_test.rb new file mode 100644 index 000000000..f8a5742ee --- /dev/null +++ b/test/integration/abuses_test.rb @@ -0,0 +1,53 @@ +class AbusesTest < ActionDispatch::IntegrationTest + + # Called before every test method runs. Can be used + # to set up fixture information. + def setup + # Do nothing + end + + # Called after every test method runs. Can be used to tear + # down fixture information. + + def teardown + # Do nothing + end + + # Abuse report + test 'visitor report an abuse' do + project = Project.first + + post '/api/abuses', + { + abuse: { + signaled_type: 'Project', + signaled_id: project.id, + first_name: 'William', + last_name: 'Prindle', + email: 'wprindle@iastate.edu', + message: 'This project is in infringement with the patent US5014921 A.' + } + }.to_json, + { + 'Accept' => Mime::JSON, + 'Content-Type' => Mime::JSON.to_s + } + + # Check response format & status + assert_equal 201, response.status, response.body + assert_equal Mime::JSON, response.content_type + + # Check the correct object was signaled + abuse = json_response(response.body) + assert_equal project.id, abuse[:reporting][:signaled_id], 'project ID mismatch' + assert_equal 'Project', abuse[:reporting][:signaled_type], 'signaled object type mismatch' + + # Check notifications were sent for every admins + notifications = Notification.where(notification_type_id: NotificationType.find_by_name('notify_admin_abuse_reported'), attached_object_type: 'Abuse', attached_object_id: abuse[:reporting][:id]) + assert_not_empty notifications, 'no notifications were created' + notified_users_ids = notifications.map {|n| n.receiver_id } + User.admins.each do |adm| + assert_includes notified_users_ids, adm.id, "Admin #{adm.id} was not notified" + end + end +end \ No newline at end of file diff --git a/test/integration/subscriptions_test.rb b/test/integration/subscriptions_test.rb index b58ab10eb..249b3c63b 100644 --- a/test/integration/subscriptions_test.rb +++ b/test/integration/subscriptions_test.rb @@ -7,6 +7,7 @@ class SubscriptionsTest < ActionDispatch::IntegrationTest end test "user take a subscription" do + skip plan = Plan.where(group_id: @user.group.id, type: 'Plan').first post '/api/subscriptions',