summaryrefslogtreecommitdiff
path: root/spec/features/groups/import_export/connect_instance_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/features/groups/import_export/connect_instance_spec.rb')
-rw-r--r--spec/features/groups/import_export/connect_instance_spec.rb108
1 files changed, 65 insertions, 43 deletions
diff --git a/spec/features/groups/import_export/connect_instance_spec.rb b/spec/features/groups/import_export/connect_instance_spec.rb
index ae03e64cf59..11cc4bb9b37 100644
--- a/spec/features/groups/import_export/connect_instance_spec.rb
+++ b/spec/features/groups/import_export/connect_instance_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe 'Import/Export - Connect to another instance', :js do
+RSpec.describe 'Import/Export - Connect to another instance', :js, feature_category: :importers do
let_it_be(:user) { create(:user) }
let_it_be(:group) { create(:group) }
@@ -10,74 +10,96 @@ RSpec.describe 'Import/Export - Connect to another instance', :js do
group.add_owner(user)
end
- before do
- gitlab_sign_in(user)
+ context 'when importing group by direct transfer is enabled' do
+ before do
+ stub_application_setting(bulk_import_enabled: true)
- visit new_group_path
+ open_import_group
+ end
- click_link 'Import group'
- end
+ context 'when the user provides valid credentials' do
+ source_url = 'https://gitlab.com'
- context 'when the user provides valid credentials' do
- source_url = 'https://gitlab.com'
+ include_context 'bulk imports requests context', source_url
- include_context 'bulk imports requests context', source_url
+ it 'successfully connects to remote instance' do
+ pat = 'demo-pat'
- it 'successfully connects to remote instance' do
- pat = 'demo-pat'
+ expect(page).to have_content 'Import groups from another instance of GitLab'
+ expect(page).to have_content 'Not all related objects are migrated'
- expect(page).to have_content 'Import groups from another instance of GitLab'
- expect(page).to have_content 'Not all related objects are migrated'
+ fill_in :bulk_import_gitlab_url, with: source_url
+ fill_in :bulk_import_gitlab_access_token, with: pat
- fill_in :bulk_import_gitlab_url, with: source_url
- fill_in :bulk_import_gitlab_access_token, with: pat
+ click_on 'Connect instance'
- click_on 'Connect instance'
+ expect(page).to have_content 'Showing 1-1 of 42 groups that you own from %{url}' % { url: source_url }
+ expect(page).to have_content 'stub-group'
- expect(page).to have_content 'Showing 1-1 of 42 groups that you own from %{url}' % { url: source_url }
- expect(page).to have_content 'stub-group'
+ visit '/'
- visit '/'
+ wait_for_all_requests
+ end
+ end
+
+ context 'when the user provides invalid url' do
+ it 'reports an error' do
+ source_url = 'invalid-url'
+ pat = 'demo-pat'
+
+ fill_in :bulk_import_gitlab_url, with: source_url
+ fill_in :bulk_import_gitlab_access_token, with: pat
- wait_for_all_requests
+ click_on 'Connect instance'
+
+ expect(page).to have_content 'Specified URL cannot be used'
+ end
end
- end
- context 'when the user provides invalid url' do
- it 'reports an error' do
- source_url = 'invalid-url'
- pat = 'demo-pat'
+ context 'when the user does not fill in source URL' do
+ it 'reports an error' do
+ pat = 'demo-pat'
- fill_in :bulk_import_gitlab_url, with: source_url
- fill_in :bulk_import_gitlab_access_token, with: pat
+ fill_in :bulk_import_gitlab_access_token, with: pat
- click_on 'Connect instance'
+ click_on 'Connect instance'
- expect(page).to have_content 'Specified URL cannot be used'
+ expect(page).to have_content 'Please fill in GitLab source URL'
+ end
end
- end
- context 'when the user does not fill in source URL' do
- it 'reports an error' do
- pat = 'demo-pat'
+ context 'when the user does not fill in access token' do
+ it 'reports an error' do
+ source_url = 'https://gitlab.com'
- fill_in :bulk_import_gitlab_access_token, with: pat
+ fill_in :bulk_import_gitlab_url, with: source_url
- click_on 'Connect instance'
+ click_on 'Connect instance'
- expect(page).to have_content 'Please fill in GitLab source URL'
+ expect(page).to have_content 'Please fill in your personal access token'
+ end
end
end
- context 'when the user does not fill in access token' do
- it 'reports an error' do
- source_url = 'https://gitlab.com'
-
- fill_in :bulk_import_gitlab_url, with: source_url
+ context 'when importing group by direct transfer is disabled' do
+ before do
+ stub_application_setting(bulk_import_enabled: false)
- click_on 'Connect instance'
+ open_import_group
+ end
- expect(page).to have_content 'Please fill in your personal access token'
+ it 'renders fields and button disabled' do
+ expect(page).to have_field('GitLab source URL', disabled: true)
+ expect(page).to have_field('Personal access token', disabled: true)
+ expect(page).to have_button('Connect instance', disabled: true)
end
end
+
+ def open_import_group
+ gitlab_sign_in(user)
+
+ visit new_group_path
+
+ click_link 'Import group'
+ end
end