diff options
Diffstat (limited to 'spec/features/groups/settings/packages_and_registries_spec.rb')
-rw-r--r-- | spec/features/groups/settings/packages_and_registries_spec.rb | 68 |
1 files changed, 65 insertions, 3 deletions
diff --git a/spec/features/groups/settings/packages_and_registries_spec.rb b/spec/features/groups/settings/packages_and_registries_spec.rb index b8ffd73335d..45ea77e3868 100644 --- a/spec/features/groups/settings/packages_and_registries_spec.rb +++ b/spec/features/groups/settings/packages_and_registries_spec.rb @@ -7,15 +7,17 @@ RSpec.describe 'Group Packages & Registries settings' do let(:user) { create(:user) } let(:group) { create(:group) } + let(:sub_group) { create(:group, parent: group) } before do group.add_owner(user) + sub_group.add_owner(user) sign_in(user) end - context 'when the feature flag is off' do + context 'when packges feature is disabled on the group' do before do - stub_feature_flags(packages_and_registries_group_settings: false) + stub_packages_setting(enabled: false) end it 'the menu item is not visible' do @@ -25,9 +27,15 @@ RSpec.describe 'Group Packages & Registries settings' do expect(settings_menu).not_to have_content 'Packages & Registries' end + + it 'renders 404 when navigating to page' do + visit_settings_page + + expect(page).to have_content('Not Found') + end end - context 'when the feature flag is on' do + context 'when packages feature is enabled on the group' do it 'the menu item is visible' do visit group_path(group) @@ -47,6 +55,56 @@ RSpec.describe 'Group Packages & Registries settings' do sidebar = find('.nav-sidebar') expect(sidebar).to have_link _('Packages & Registries') end + + it 'has a Package Registry section', :js do + visit_settings_page + + expect(page).to have_content('Package Registry') + expect(page).to have_button('Collapse') + end + + it 'automatically saves changes to the server', :js do + visit_settings_page + + expect(page).to have_content('Allow duplicates') + + find('.gl-toggle').click + + expect(page).to have_content('Do not allow duplicates') + + visit_settings_page + + expect(page).to have_content('Do not allow duplicates') + end + + it 'shows an error on wrong regex', :js do + visit_settings_page + + expect(page).to have_content('Allow duplicates') + + find('.gl-toggle').click + + expect(page).to have_content('Do not allow duplicates') + + fill_in 'Exceptions', with: ')' + + # simulate blur event + find('body').click + + expect(page).to have_content('is an invalid regexp') + end + + context 'in a sub group' do + it 'works correctly', :js do + visit_sub_group_settings_page + + expect(page).to have_content('Allow duplicates') + + find('.gl-toggle').click + + expect(page).to have_content('Do not allow duplicates') + end + end end def find_settings_menu @@ -56,4 +114,8 @@ RSpec.describe 'Group Packages & Registries settings' do def visit_settings_page visit group_settings_packages_and_registries_path(group) end + + def visit_sub_group_settings_page + visit group_settings_packages_and_registries_path(sub_group) + end end |