X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/16c5d87acf21a189b4f7aacd50a3231a795153bd..62eaf39454cf7d3874691fc59174c546767de89c:/apps/workbench/test/integration/user_manage_account_test.rb diff --git a/apps/workbench/test/integration/user_manage_account_test.rb b/apps/workbench/test/integration/user_manage_account_test.rb index 4e396ef0c8..0414f4e09d 100644 --- a/apps/workbench/test/integration/user_manage_account_test.rb +++ b/apps/workbench/test/integration/user_manage_account_test.rb @@ -22,7 +22,6 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest assert page.has_text?('Current Token'), 'No text - Current Token' assert page.has_text?('The Arvados API token is a secret key that enables the Arvados SDKs to access Arvados'), 'No text - Arvados API token' add_and_verify_ssh_key - verify_repositories user else # inactive user within('.navbar-fixed-top') do find('a', text: "#{user['email']}").click @@ -61,48 +60,6 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest assert page.has_text?('added_in_test'), 'No text - added_in_test' end - def verify_repositories user - Thread.current[:arvados_api_token] = @@API_AUTHS["admin"]['api_token'] - repo_links = Link.filter([['head_uuid', 'is_a', 'arvados#repository'], - ['tail_uuid', '=', user['uuid']], - ['link_class', '=', 'permission']]) - repos = Repository.where uuid: repo_links.collect(&:head_uuid) - repositories = {} - repos.each do |repo| - repositories[repo.uuid] = repo - end - - repo_writables = {} - repo_links.each do |link| - if link.name.in? ['can_write','can_manage'] - repo_writables[link.head_uuid] = link.name - end - end - - current_page = current_path - repo_links.each do |link| - if repo_writables[link.head_uuid] == 'can_manage' - assert_selector 'a', text: repositories[link.head_uuid]['name'] - within('tr', text: repositories[link.head_uuid]['fetch_url']) do - assert_text 'writable' - click_link repositories[link.head_uuid]['name'] - end - assert_text 'Repository Access' - visit current_page - else - assert_no_selector 'a', text: repositories[link.head_uuid]['name'] - assert_text repositories[link.head_uuid]['name'] - within('tr', text: repositories[link.head_uuid]['fetch_url']) do - if repo_writables[link.head_uuid] == 'can_write' - assert_text 'writable' - else - assert_text 'read-only' - end - end - end - end - end - [ ['inactive', api_fixture('users')['inactive']], ['inactive_uninvited', api_fixture('users')['inactive_uninvited']], @@ -140,4 +97,29 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest end end end + + test "verify repositories for active user" do + visit page_with_token('active', '/manage_account') + + repos = [[api_fixture('repositories')['foo'], true, true], + [api_fixture('repositories')['repository3'], false, false], + [api_fixture('repositories')['repository4'], true, false]] + + repos.each do |(repo, writable, sharable)| + within('tr', text: repo['name']+'.git') do + if sharable + assert_selector 'a', text:'Share' + assert_text 'writable' + else + assert_text repo['name'] + assert_no_selector 'a', text:'Share' + if writable + assert_text 'writable' + else + assert_text 'read-only' + end + end + end + end + end end