15924: Change import paths to git.arvados.org.
[arvados.git] / services / api / test / functional / application_controller_test.rb
index d382c1c6a6bff71703c31fd87b7e30ec41b5925d..175a8f71ea0544e2253754f607a2217a441d63cc 100644 (file)
@@ -25,13 +25,15 @@ class ApplicationControllerTest < ActionController::TestCase
     assert_operator(token_time, :>=, @start_stamp, "error token too old")
     assert_operator(token_time, :<=, now_timestamp, "error token too new")
     json_response['errors'].each do |err|
-      assert_match(/req-[a-z0-9]{20}/, err)
+      assert_match(/req-[a-z0-9]{20}/, err, "X-Request-Id value missing on error message")
     end
   end
 
   def check_404(errmsg="Path not found")
     assert_response 404
-    assert_includes(json_response['errors'].first, errmsg)
+    json_response['errors'].each do |err|
+      assert(err.include?(errmsg), "error message '#{err}' expected to include '#{errmsg}'")
+    end
     check_error_token
   end
 
@@ -119,4 +121,16 @@ class ApplicationControllerTest < ActionController::TestCase
       end
     end
   end
+
+  test "exceptions with backtraces get logged at exception_backtrace key" do
+    Group.stubs(:new).raises(Exception, 'Whoops')
+    Rails.logger.expects(:info).with(any_parameters) do |param|
+      param.include?('Whoops') and param.include?('"exception_backtrace":')
+    end
+    @controller = Arvados::V1::GroupsController.new
+    authorize_with :active
+    post :create, params: {
+      group: {},
+    }
+  end
 end