summaryrefslogtreecommitdiff
path: root/spec/features/groups_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/groups_spec.rb')
-rw-r--r--spec/features/groups_spec.rb66
1 files changed, 66 insertions, 0 deletions
diff --git a/spec/features/groups_spec.rb b/spec/features/groups_spec.rb
index 28b22860f0a..33d2ac50628 100644
--- a/spec/features/groups_spec.rb
+++ b/spec/features/groups_spec.rb
@@ -141,6 +141,30 @@ RSpec.describe 'Group' do
end
end
end
+
+ describe 'showing recaptcha on group creation when it is enabled' do
+ before do
+ stub_application_setting(recaptcha_enabled: true)
+ allow(Gitlab::Recaptcha).to receive(:load_configurations!)
+ visit new_group_path
+ end
+
+ it 'renders recaptcha' do
+ expect(page).to have_css('.recaptcha')
+ end
+ end
+
+ describe 'not showing recaptcha on group creation when it is disabled' do
+ before do
+ stub_feature_flags(recaptcha_on_top_level_group_creation: false)
+ stub_application_setting(recaptcha_enabled: true)
+ visit new_group_path
+ end
+
+ it 'does not render recaptcha' do
+ expect(page).not_to have_css('.recaptcha')
+ end
+ end
end
describe 'create a nested group' do
@@ -189,6 +213,46 @@ RSpec.describe 'Group' do
expect(page).to have_content("Group 'bar' was successfully created.")
end
end
+
+ context 'when recaptcha is enabled' do
+ before do
+ stub_application_setting(recaptcha_enabled: true)
+ allow(Gitlab::Recaptcha).to receive(:load_configurations!)
+ end
+
+ context 'when creating subgroup' do
+ let(:path) { new_group_path(group, parent_id: group.id) }
+
+ it 'does not render recaptcha' do
+ visit path
+
+ expect(page).not_to have_css('.recaptcha')
+ end
+ end
+ end
+
+ describe 'real-time group url validation', :js do
+ let_it_be(:subgroup) { create(:group, path: 'sub', parent: group) }
+
+ before do
+ group.add_owner(user)
+ visit new_group_path(parent_id: group.id)
+ end
+
+ it 'shows a message if group url is available' do
+ fill_in 'Group URL', with: group.path
+ wait_for_requests
+
+ expect(page).to have_content('Group path is available')
+ end
+
+ it 'shows an error if group url is taken' do
+ fill_in 'Group URL', with: subgroup.path
+ wait_for_requests
+
+ expect(page).to have_content('Group path is already taken')
+ end
+ end
end
it 'checks permissions to avoid exposing groups by parent_id' do
@@ -203,6 +267,7 @@ RSpec.describe 'Group' do
describe 'group edit', :js do
let_it_be(:group) { create(:group, :public) }
+
let(:path) { edit_group_path(group) }
let(:new_name) { 'new-name' }
@@ -248,6 +313,7 @@ RSpec.describe 'Group' do
describe 'group page with markdown description' do
let_it_be(:group) { create(:group) }
+
let(:path) { group_path(group) }
before do