Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/import/fogbugz_controller_spec.rb')
-rw-r--r--spec/controllers/import/fogbugz_controller_spec.rb36
1 files changed, 34 insertions, 2 deletions
diff --git a/spec/controllers/import/fogbugz_controller_spec.rb b/spec/controllers/import/fogbugz_controller_spec.rb
index d351e1cc3f3..8f8cc9590a5 100644
--- a/spec/controllers/import/fogbugz_controller_spec.rb
+++ b/spec/controllers/import/fogbugz_controller_spec.rb
@@ -6,14 +6,14 @@ RSpec.describe Import::FogbugzController do
include ImportSpecHelper
let(:user) { create(:user) }
+ let(:token) { FFaker::Lorem.characters(8) }
+ let(:uri) { 'https://example.com' }
before do
sign_in(user)
end
describe 'POST #callback' do
- let(:token) { FFaker::Lorem.characters(8) }
- let(:uri) { 'https://example.com' }
let(:xml_response) { %Q(<?xml version=\"1.0\" encoding=\"UTF-8\"?><response><token><![CDATA[#{token}]]></token></response>) }
it 'attempts to contact Fogbugz server' do
@@ -97,6 +97,38 @@ RSpec.describe Import::FogbugzController do
end
describe 'POST create' do
+ let(:repo_id) { 'FOGBUGZ_REPO_ID' }
+ let(:project) { create(:project) }
+ let(:client) { instance_double(Gitlab::FogbugzImport::Client, user_map: {}) }
+
+ before do
+ allow(controller).to receive(:client).and_return(client)
+ end
+
+ it 'returns the new project' do
+ expect(Import::FogbugzService).to receive(:new).and_return(
+ instance_double(Import::FogbugzService, execute: ServiceResponse.success)
+ )
+
+ post :create, format: :json
+
+ expect(response).to have_gitlab_http_status(:ok)
+ end
+
+ it 'returns an error when service reports an error' do
+ message = 'Error message'
+ status = :unprocessable_entity
+
+ expect(Import::FogbugzService).to receive(:new).and_return(
+ instance_double(Import::FogbugzService, execute: ServiceResponse.error(message: message, http_status: status))
+ )
+
+ post :create, format: :json
+
+ expect(response).to have_gitlab_http_status(status)
+ expect(json_response).to eq({ 'errors' => message })
+ end
+
it_behaves_like 'project import rate limiter'
end
end