debian-mirror-gitlab/spec/support/protected_tags/access_control_ce_shared_examples.rb

48 lines
1.5 KiB
Ruby
Raw Normal View History

2017-08-17 22:00:37 +05:30
RSpec.shared_examples "protected tags > access control > CE" do
2018-03-17 18:26:18 +05:30
ProtectedRefAccess::HUMAN_ACCESS_LEVELS.each do |(access_type_id, access_type_name)|
2017-08-17 22:00:37 +05:30
it "allows creating protected tags that #{access_type_name} can create" do
2017-09-10 17:25:29 +05:30
visit project_protected_tags_path(project)
2017-08-17 22:00:37 +05:30
set_protected_tag_name('master')
within('.js-new-protected-tag') do
allowed_to_create_button = find(".js-allowed-to-create")
unless allowed_to_create_button.text == access_type_name
2018-03-17 18:26:18 +05:30
allowed_to_create_button.click
2017-08-17 22:00:37 +05:30
find('.create_access_levels-container .dropdown-menu li', match: :first)
within('.create_access_levels-container .dropdown-menu') { click_on access_type_name }
end
end
click_on "Protect"
expect(ProtectedTag.count).to eq(1)
expect(ProtectedTag.last.create_access_levels.map(&:access_level)).to eq([access_type_id])
end
it "allows updating protected tags so that #{access_type_name} can create them" do
2017-09-10 17:25:29 +05:30
visit project_protected_tags_path(project)
2017-08-17 22:00:37 +05:30
set_protected_tag_name('master')
click_on "Protect"
expect(ProtectedTag.count).to eq(1)
within(".protected-tags-list") do
find(".js-allowed-to-create").click
within('.js-allowed-to-create-container') do
expect(first("li")).to have_content("Roles")
click_on access_type_name
end
end
2017-09-10 17:25:29 +05:30
wait_for_requests
2017-08-17 22:00:37 +05:30
expect(ProtectedTag.last.create_access_levels.map(&:access_level)).to include(access_type_id)
end
end
end