X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/facbf48de90f600a42363b72bcb2b4929f78c73d..30436ed9a7bb17ebb3ccc9e6f9938c086917bd69:/apps/workbench/test/helpers/share_object_helper.rb diff --git a/apps/workbench/test/helpers/share_object_helper.rb b/apps/workbench/test/helpers/share_object_helper.rb index 783e2bb1c9..e31f196498 100644 --- a/apps/workbench/test/helpers/share_object_helper.rb +++ b/apps/workbench/test/helpers/share_object_helper.rb @@ -1,3 +1,7 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + module ShareObjectHelper def show_object_using(auth_key, type, key, expect) obj_uuid = api_fixture(type)[key]['uuid'] @@ -19,6 +23,7 @@ module ShareObjectHelper # Otherwise, the not-included assertions might falsely pass because # the modal hasn't loaded yet. find(".selectable", text: name).click + assert_text "Only #{share_type} you are allowed to access are shown" assert(has_no_selector?(".modal-dialog-preview-pane"), "preview pane available in sharing dialog") if share_type == 'users' and obj and obj['email'] @@ -30,9 +35,10 @@ module ShareObjectHelper end click_on "Add" end - using_wait_time(Capybara.default_wait_time * 3) do + # Admin case takes many times longer than normal user, but not sure why + using_wait_time(30) do assert(page.has_link?(name), - "new share was not added to sharing table") + "new share #{name} was not added to sharing table") assert_equal(start_share_count + 1, share_rows.size, "new share did not add row to sharing table") end @@ -40,7 +46,8 @@ module ShareObjectHelper def modify_share_and_check(name) start_rows = share_rows - link_row = start_rows.select { |row| row.has_text?(name) } + # We assume rows have already been rendered and can be checked quickly + link_row = start_rows.select { |row| row.has_text?(name, wait:(0.1) ) } assert_equal(1, link_row.size, "row with new permission not found") within(link_row.first) do click_on("Read") @@ -55,17 +62,16 @@ module ShareObjectHelper # poltergeist returns true for confirm(), so we don't need to accept. end end - wait_for_ajax - using_wait_time(Capybara.default_wait_time * 3) do - assert(page.has_no_text?(name), - "new share row still exists after being revoked") + # Ensure revoked permission disappears from page. + using_wait_time(Capybara.default_max_wait_time * 3) do + assert_no_text name assert_equal(start_rows.size - 1, share_rows.size, "revoking share did not remove row from sharing table") end end def user_can_manage(user_sym, fixture) - get(:show, {id: fixture["uuid"]}, session_for(user_sym)) + get(:show, params: {id: fixture["uuid"]}, session: session_for(user_sym)) is_manager = assigns(:user_is_manager) assert_not_nil(is_manager, "user_is_manager flag not set") if not is_manager