X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/76eaaac9fed4e74b8073ee08f99b84fc7922ac9f..8ce476b7864f1a2d1f05cd0a770ae159eeb845eb:/services/api/test/functional/application_controller_test.rb diff --git a/services/api/test/functional/application_controller_test.rb b/services/api/test/functional/application_controller_test.rb index 3a4a244edd..af7882141e 100644 --- a/services/api/test/functional/application_controller_test.rb +++ b/services/api/test/functional/application_controller_test.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + require 'test_helper' class ApplicationControllerTest < ActionController::TestCase @@ -24,25 +28,27 @@ class ApplicationControllerTest < ActionController::TestCase def check_404(errmsg="Path not found") assert_response 404 - assert_equal([errmsg], json_response['errors']) + json_response['errors'].each do |err| + assert(err.include?(errmsg), "error message '#{err}' expected to include '#{errmsg}'") + end check_error_token end test "requesting nonexistent object returns 404 error" do authorize_with :admin - get(:show, id: BAD_UUID) + get(:show, params: {id: BAD_UUID}) check_404 end test "requesting object without read permission returns 404 error" do authorize_with :spectator - get(:show, id: specimens(:owned_by_active_user).uuid) + get(:show, params: {id: specimens(:owned_by_active_user).uuid}) check_404 end test "submitting bad object returns error" do authorize_with :spectator - post(:create, specimen: {badattr: "badvalue"}) + post(:create, params: {specimen: {badattr: "badvalue"}}) assert_response 422 check_error_token end @@ -51,7 +57,7 @@ class ApplicationControllerTest < ActionController::TestCase test "bogus boolean parameter #{bogus.inspect} returns error" do @controller = Arvados::V1::GroupsController.new authorize_with :active - post :create, { + post :create, params: { group: {}, ensure_unique_name: bogus } @@ -68,8 +74,8 @@ class ApplicationControllerTest < ActionController::TestCase test "boolean parameter #{boolparam.inspect} acceptable" do @controller = Arvados::V1::GroupsController.new authorize_with :active - post :create, { - group: {}, + post :create, params: { + group: {group_class: "project"}, ensure_unique_name: boolparam } assert_response :success @@ -79,10 +85,11 @@ class ApplicationControllerTest < ActionController::TestCase test "boolean parameter #{boolparam.inspect} accepted as #{bool.inspect}" do @controller = Arvados::V1::GroupsController.new authorize_with :active - post :create, { + post :create, params: { group: { name: groups(:aproject).name, - owner_uuid: groups(:aproject).owner_uuid + owner_uuid: groups(:aproject).owner_uuid, + group_class: "project" }, ensure_unique_name: boolparam } @@ -90,4 +97,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