summaryrefslogtreecommitdiff
path: root/spec/requests/api/group_export_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/requests/api/group_export_spec.rb')
-rw-r--r--spec/requests/api/group_export_spec.rb129
1 files changed, 48 insertions, 81 deletions
diff --git a/spec/requests/api/group_export_spec.rb b/spec/requests/api/group_export_spec.rb
index 31eef21654a..ffa313d4464 100644
--- a/spec/requests/api/group_export_spec.rb
+++ b/spec/requests/api/group_export_spec.rb
@@ -30,76 +30,62 @@ RSpec.describe API::GroupExport do
group.add_owner(user)
end
- context 'group_import_export feature flag enabled' do
+ context 'when export file exists' do
before do
- stub_feature_flags(group_import_export: true)
-
allow(Gitlab::ApplicationRateLimiter)
.to receive(:increment)
.and_return(0)
- end
-
- context 'when export file exists' do
- before do
- upload.export_file = fixture_file_upload('spec/fixtures/group_export.tar.gz', "`/tar.gz")
- upload.save!
- end
- it 'downloads exported group archive' do
- get api(download_path, user)
-
- expect(response).to have_gitlab_http_status(:ok)
- end
+ upload.export_file = fixture_file_upload('spec/fixtures/group_export.tar.gz', "`/tar.gz")
+ upload.save!
+ end
- context 'when export_file.file does not exist' do
- before do
- expect_next_instance_of(ImportExportUploader) do |uploader|
- expect(uploader).to receive(:file).and_return(nil)
- end
- end
+ it 'downloads exported group archive' do
+ get api(download_path, user)
- it 'returns 404' do
- get api(download_path, user)
+ expect(response).to have_gitlab_http_status(:ok)
+ end
- expect(response).to have_gitlab_http_status(:not_found)
+ context 'when export_file.file does not exist' do
+ before do
+ expect_next_instance_of(ImportExportUploader) do |uploader|
+ expect(uploader).to receive(:file).and_return(nil)
end
end
- context 'when object is not present' do
- let(:other_group) { create(:group, :with_export) }
- let(:other_download_path) { "/groups/#{other_group.id}/export/download" }
+ it 'returns 404' do
+ get api(download_path, user)
- before do
- other_group.add_owner(user)
- other_group.export_file.file.delete
- end
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
- it 'returns 404' do
- get api(other_download_path, user)
+ context 'when object is not present' do
+ let(:other_group) { create(:group, :with_export) }
+ let(:other_download_path) { "/groups/#{other_group.id}/export/download" }
- expect(response).to have_gitlab_http_status(:not_found)
- expect(json_response['message']).to eq('The group export file is not available yet')
- end
+ before do
+ other_group.add_owner(user)
+ other_group.export_file.file.delete
end
- end
- context 'when export file does not exist' do
it 'returns 404' do
- get api(download_path, user)
+ get api(other_download_path, user)
expect(response).to have_gitlab_http_status(:not_found)
+ expect(json_response['message']).to eq('The group export file is not available yet')
end
end
end
- context 'group_import_export feature flag disabled' do
- before do
- stub_feature_flags(group_import_export: false)
- end
-
- it 'responds with 404 Not Found' do
+ context 'when export file does not exist' do
+ it 'returns 404' do
get api(download_path, user)
+ allow(Gitlab::ApplicationRateLimiter)
+ .to receive(:increment)
+ .and_return(0)
+
expect(response).to have_gitlab_http_status(:not_found)
end
end
@@ -122,58 +108,40 @@ RSpec.describe API::GroupExport do
end
describe 'POST /groups/:group_id/export' do
- context 'group_import_export feature flag enabled' do
+ context 'when user is a group owner' do
before do
- stub_feature_flags(group_import_export: true)
+ group.add_owner(user)
end
- context 'when user is a group owner' do
- before do
- group.add_owner(user)
- end
-
- it 'accepts download' do
- post api(path, user)
+ it 'accepts download' do
+ post api(path, user)
- expect(response).to have_gitlab_http_status(:accepted)
- end
+ expect(response).to have_gitlab_http_status(:accepted)
end
+ end
- context 'when the export cannot be started' do
- before do
- group.add_owner(user)
- allow(GroupExportWorker).to receive(:perform_async).and_return(nil)
- end
-
- it 'returns an error' do
- post api(path, user)
-
- expect(response).to have_gitlab_http_status(:error)
- end
+ context 'when the export cannot be started' do
+ before do
+ group.add_owner(user)
+ allow(GroupExportWorker).to receive(:perform_async).and_return(nil)
end
- context 'when user is not a group owner' do
- before do
- group.add_developer(user)
- end
-
- it 'forbids the request' do
- post api(path, user)
+ it 'returns an error' do
+ post api(path, user)
- expect(response).to have_gitlab_http_status(:forbidden)
- end
+ expect(response).to have_gitlab_http_status(:error)
end
end
- context 'group_import_export feature flag disabled' do
+ context 'when user is not a group owner' do
before do
- stub_feature_flags(group_import_export: false)
+ group.add_developer(user)
end
- it 'responds with 404 Not Found' do
+ it 'forbids the request' do
post api(path, user)
- expect(response).to have_gitlab_http_status(:not_found)
+ expect(response).to have_gitlab_http_status(:forbidden)
end
end
@@ -202,7 +170,6 @@ RSpec.describe API::GroupExport do
let(:status_path) { "/groups/#{group.id}/export_relations/status" }
before do
- stub_feature_flags(group_import_export: true)
group.add_owner(user)
end