X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b805211887332f43b42c74f52f2b43686546003d..c3872e7a1c817cd39b702f694f70d34f28f7f472:/services/api/test/functional/arvados/v1/collections_controller_test.rb diff --git a/services/api/test/functional/arvados/v1/collections_controller_test.rb b/services/api/test/functional/arvados/v1/collections_controller_test.rb index af11715982..43797035bc 100644 --- a/services/api/test/functional/arvados/v1/collections_controller_test.rb +++ b/services/api/test/functional/arvados/v1/collections_controller_test.rb @@ -374,6 +374,24 @@ EOS "Expected 'duplicate key' error in #{response_errors.first}") end + [false, true].each do |ensure_unique_name| + test "create failure with duplicate name, ensure_unique_name #{ensure_unique_name}" do + authorize_with :active + post :create, params: { + collection: { + owner_uuid: users(:active).uuid, + manifest_text: "", + name: "this...............................................................................................................................................................................................................................................................name is too long" + }, + ensure_unique_name: ensure_unique_name + } + assert_response 422 + # check the real error isn't masked by an + # ensure_unique_name-related error (#19698) + assert_match /value too long for type/, json_response['errors'][0] + end + end + [false, true].each do |unsigned| test "create with duplicate name, ensure_unique_name, unsigned=#{unsigned}" do permit_unsigned_manifests unsigned @@ -391,7 +409,7 @@ EOS ensure_unique_name: true } assert_response :success - assert_match /^owned_by_active \(\d{4}-\d\d-\d\d.*?Z\)$/, json_response['name'] + assert_match /^owned_by_active \(#{json_response['uuid'][-15..-1]}\)$/, json_response['name'] end end @@ -1204,6 +1222,20 @@ EOS assert_nil json_response['trash_at'] end + test 'untrash a trashed collection by assigning nil to trash_at' do + authorize_with :active + post :update, params: { + id: collections(:expired_collection).uuid, + collection: { + trash_at: nil, + }, + include_trash: true, + } + assert_response 200 + assert_equal false, json_response['is_trashed'] + assert_nil json_response['trash_at'] + end + test 'untrash error on not trashed collection' do authorize_with :active post :untrash, params: { @@ -1253,7 +1285,7 @@ EOS assert_equal false, json_response['is_trashed'] assert_nil json_response['trash_at'] assert_nil json_response['delete_at'] - assert_match /^same name for trashed and persisted collections \(\d{4}-\d\d-\d\d.*?Z\)$/, json_response['name'] + assert_match /^same name for trashed and persisted collections \(#{json_response['uuid'][-15..-1]}\)$/, json_response['name'] end test 'cannot show collection in trashed subproject' do