X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/e2999ea6cca6ce034ba0fc921f91314776b76200..1de8e55b47ea46fe1e589fbfe1ff0ae77b9e2cbf:/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 9cae2b5829..a84d424d3e 100644 --- a/apps/workbench/test/integration/user_manage_account_test.rb +++ b/apps/workbench/test/integration/user_manage_account_test.rb @@ -60,25 +60,6 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest assert page.has_text?('added_in_test'), 'No text - added_in_test' end - def verify_repositories user, repos - repos.each do |repo_wribable_sharable| - within('tr', text: repo_wribable_sharable[0]['name']+'.git') do - if repo_wribable_sharable[2] - assert_selector 'a', text:repo_wribable_sharable[0]['name'] - assert_text 'writable' - else - assert_text repo_wribable_sharable[0]['name'] - assert_no_selector 'a', text:repo_wribable_sharable[0]['name'] - if repo_wribable_sharable[1] - 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']], @@ -91,16 +72,24 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest end end + test "pipeline notification shown even though public pipelines exist" do + skip "created_by doesn't work that way" + Rails.configuration.anonymous_user_token = api_fixture('api_client_authorizations')['anonymous']['api_token'] + visit page_with_token 'job_reader' + click_link 'notifications-menu' + assert_selector 'a', text: 'Click here to learn how to run an Arvados Crunch pipeline' + end + [ - ['inactive_but_signed_user_agreement', true], - ['active', false], - ].each do |user, notifications| - test "test manage account for #{user} with notifications #{notifications}" do + ['job_reader', :ssh, :pipeline], + ['active'], + ].each do |user, *expect| + test "manage account for #{user} with notifications #{expect.inspect}" do + Rails.configuration.anonymous_user_token = false visit page_with_token(user) click_link 'notifications-menu' - if notifications + if expect.include? :ssh assert_selector('a', text: 'Click here to set up an SSH public key for use with Arvados') - assert_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline') click_link('Click here to set up an SSH public key for use with Arvados') assert_selector('a', text: 'Add new SSH key') @@ -109,23 +98,57 @@ class UserManageAccountTest < ActionDispatch::IntegrationTest # No more SSH notification click_link 'notifications-menu' assert_no_selector('a', text: 'Click here to set up an SSH public key for use with Arvados') - assert_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline') else assert_no_selector('a', text: 'Click here to set up an SSH public key for use with Arvados') assert_no_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline') end + + if expect.include? :pipeline + assert_selector('a', text: 'Click here to learn how to run an Arvados Crunch pipeline') + end end end - [ - ['active', api_fixture('users')['active'], [[api_fixture('repositories')['foo'], true, true], - [api_fixture('repositories')['repository3'], false, false], - [api_fixture('repositories')['repository4'], true, false]],], - ['admin', api_fixture('users')['admin'], []] - ].each do |token, user, repos| - test "verify repositories for user #{token}" do - visit page_with_token(token, '/manage_account') - verify_repositories user, repos + 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 + + test "request shell access" do + visit page_with_token('spectator', '/manage_account') + assert_text 'You do not have access to any virtual machines' + click_button 'Send request for shell access' + assert_text 'A request for shell access was sent.' + assert_no_text 'You do not have access to any virtual machines.' + + # revisit the page and verify that the Request button is no longer shown + within('.navbar-fixed-top') do + find('a', text: 'spectator').click + within('.dropdown-menu') do + find('a', text: 'Manage account').click + end end + assert_text 'You do not have access to any virtual machines.' + assert_text 'A request for shell access was sent on ' end end