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/lib/gitlab/github_import/importer/issue_importer_spec.rb')
-rw-r--r--spec/lib/gitlab/github_import/importer/issue_importer_spec.rb38
1 files changed, 22 insertions, 16 deletions
diff --git a/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb b/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb
index bf2ffda3bf1..1c453436f9f 100644
--- a/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/issue_importer_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cache do
+RSpec.describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redis_cache, feature_category: :importers do
let_it_be(:work_item_type_id) { ::WorkItems::Type.default_issue_type.id }
let(:project) { create(:project) }
@@ -77,6 +77,27 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redi
importer.execute
end
+
+ it 'caches the created issue ID even if importer later fails' do
+ error = StandardError.new('mocked error')
+
+ allow_next_instance_of(described_class) do |importer|
+ allow(importer)
+ .to receive(:create_issue)
+ .and_return(10)
+ allow(importer)
+ .to receive(:create_assignees)
+ .and_raise(error)
+ end
+
+ expect_next_instance_of(Gitlab::GithubImport::IssuableFinder) do |finder|
+ expect(finder)
+ .to receive(:cache_database_id)
+ .with(10)
+ end
+
+ expect { importer.execute }.to raise_error(error)
+ end
end
describe '#create_issue' do
@@ -162,21 +183,6 @@ RSpec.describe Gitlab::GithubImport::Importer::IssueImporter, :clean_gitlab_redi
end
end
- context 'when the import fails due to a foreign key error' do
- it 'does not raise any errors' do
- allow(importer.user_finder)
- .to receive(:author_id_for)
- .with(issue)
- .and_return([user.id, true])
-
- expect(importer)
- .to receive(:insert_and_return_id)
- .and_raise(ActiveRecord::InvalidForeignKey, 'invalid foreign key')
-
- expect { importer.create_issue }.not_to raise_error
- end
- end
-
it 'produces a valid Issue' do
allow(importer.user_finder)
.to receive(:author_id_for)