[
[:active, ['#Sharing', '#Advanced']],
[:admin, ['#Attributes', '#Sharing', '#Advanced']],
- ].each do |user, panes|
- test "#{user} sees panes #{panes}" do
+ ].each do |user, expected_panes|
+ test "#{user} sees panes #{expected_panes}" do
get :show, {
id: api_fixture('repositories')['foo']['uuid']
}, session_for(user)
assert_response :success
- panes = css_select('[data-toggle=tab]').select do |pane|
+ panes = css_select('[data-toggle=tab]').each do |pane|
pane_name = pane.attributes['href']
- assert_equal true, (panes.include? pane_name),
- "Did not find pane #{pane_name}"
+ assert_includes expected_panes, pane_name
end
end
end
assert(page.has_no_link?("Sharing"),
"read-only repository user sees sharing tab")
end
-
- [
- 'active',
- 'admin',
- ].each do |user_key|
- test "#{user_key} user is presented with attributes tab" do
- user = api_fixture('users')[user_key]
- show_object_using(user_key, 'repositories', 'foo',
- api_fixture('repositories')['foo']['name'])
- if user['is_admin']
- assert_selector 'li', text: 'Attributes'
- else
- assert_no_selector 'li', text: 'Attributes'
- end
- assert_selector 'li', text: 'Advanced'
- end
- end
-
end
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:'Share'
- assert_text 'writable'
- else
- assert_text repo_wribable_sharable[0]['name']
- assert_no_selector 'a', text:'Share'
- 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']],
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
end