test "viewer cannot manage repository" do
refute user_can_manage(:spectator, api_fixture("repositories")["arvados"])
end
+
+ [
+ [:active, ['#Sharing', '#Advanced']],
+ [:admin, ['#Attributes', '#Sharing', '#Advanced']],
+ ].each do |user, panes|
+ test "#{user} sees panes #{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|
+ pane_name = pane.attributes['href']
+ assert_equal true, (panes.include? pane_name),
+ "Did not find pane #{pane_name}"
+ end
+ end
+ end
end
--- /dev/null
+require 'test_helper'
+
+class RepositoryTest < ActiveSupport::TestCase
+ [
+ ['admin', true],
+ ['active', false],
+ ].each do |user, can_edit|
+ test "#{user} can edit attributes #{can_edit}" do
+ use_token user
+ attrs = Repository.new.editable_attributes
+ if can_edit
+ assert true, !attrs.empty?
+ else
+ assert true, attrs.empty?
+ end
+ end
+ end
+end