summaryrefslogtreecommitdiff
path: root/spec/features/projects/settings/visibility_settings_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/projects/settings/visibility_settings_spec.rb')
-rw-r--r--spec/features/projects/settings/visibility_settings_spec.rb40
1 files changed, 36 insertions, 4 deletions
diff --git a/spec/features/projects/settings/visibility_settings_spec.rb b/spec/features/projects/settings/visibility_settings_spec.rb
index 06f6702670b..2ec6990313f 100644
--- a/spec/features/projects/settings/visibility_settings_spec.rb
+++ b/spec/features/projects/settings/visibility_settings_spec.rb
@@ -1,6 +1,6 @@
require 'spec_helper'
-feature 'Visibility settings', :js do
+describe 'Projects > Settings > Visibility settings', :js do
let(:user) { create(:user) }
let(:project) { create(:project, namespace: user.namespace, visibility_level: 20) }
@@ -10,14 +10,14 @@ feature 'Visibility settings', :js do
visit edit_project_path(project)
end
- scenario 'project visibility select is available' do
+ it 'project visibility select is available' do
visibility_select_container = find('.project-visibility-setting')
expect(visibility_select_container.find('select').value).to eq project.visibility_level.to_s
expect(visibility_select_container).to have_content 'The project can be accessed by anyone, regardless of authentication.'
end
- scenario 'project visibility description updates on change' do
+ it 'project visibility description updates on change' do
visibility_select_container = find('.project-visibility-setting')
visibility_select = visibility_select_container.find('select')
visibility_select.select('Private')
@@ -25,6 +25,38 @@ feature 'Visibility settings', :js do
expect(visibility_select.value).to eq '0'
expect(visibility_select_container).to have_content 'Access must be granted explicitly to each user.'
end
+
+ context 'merge requests select' do
+ it 'hides merge requests section' do
+ find('.project-feature-controls[data-for="project[project_feature_attributes][merge_requests_access_level]"] .project-feature-toggle').click
+
+ expect(page).to have_selector('.merge-requests-feature', visible: false)
+ end
+
+ context 'given project with merge_requests_disabled access level' do
+ let(:project) { create(:project, :merge_requests_disabled, namespace: user.namespace) }
+
+ it 'hides merge requests section' do
+ expect(page).to have_selector('.merge-requests-feature', visible: false)
+ end
+ end
+ end
+
+ context 'builds select' do
+ it 'hides builds select section' do
+ find('.project-feature-controls[data-for="project[project_feature_attributes][builds_access_level]"] .project-feature-toggle').click
+
+ expect(page).to have_selector('.builds-feature', visible: false)
+ end
+
+ context 'given project with builds_disabled access level' do
+ let(:project) { create(:project, :builds_disabled, namespace: user.namespace) }
+
+ it 'hides builds select section' do
+ expect(page).to have_selector('.builds-feature', visible: false)
+ end
+ end
+ end
end
context 'as master' do
@@ -36,7 +68,7 @@ feature 'Visibility settings', :js do
visit edit_project_path(project)
end
- scenario 'project visibility is locked' do
+ it 'project visibility is locked' do
visibility_select_container = find('.project-visibility-setting')
expect(visibility_select_container).to have_selector 'select[name="project[visibility_level]"]:disabled'