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/pull_request_merged_by_importer_spec.rb')
-rw-r--r--spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb41
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb b/spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb
new file mode 100644
index 00000000000..2999dc5bb41
--- /dev/null
+++ b/spec/lib/gitlab/github_import/importer/pull_request_merged_by_importer_spec.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::GithubImport::Importer::PullRequestMergedByImporter, :clean_gitlab_redis_cache do
+ let_it_be(:merge_request) { create(:merged_merge_request) }
+ let(:project) { merge_request.project }
+ let(:created_at) { Time.new(2017, 1, 1, 12, 00).utc }
+ let(:client_double) { double(user: double(id: 999, login: 'merger', email: 'merger@email.com')) }
+
+ let(:pull_request) do
+ instance_double(
+ Gitlab::GithubImport::Representation::PullRequest,
+ iid: merge_request.iid,
+ created_at: created_at,
+ merged_by: double(id: 999, login: 'merger')
+ )
+ end
+
+ subject { described_class.new(pull_request, project, client_double) }
+
+ it 'assigns the merged by user when mapped' do
+ merge_user = create(:user, email: 'merger@email.com')
+
+ subject.execute
+
+ expect(merge_request.metrics.reload.merged_by).to eq(merge_user)
+ end
+
+ it 'adds a note referencing the merger user when the user cannot be mapped' do
+ expect { subject.execute }
+ .to change(Note, :count).by(1)
+ .and not_change(merge_request, :updated_at)
+
+ last_note = merge_request.notes.last
+
+ expect(last_note.note).to eq("*Merged by: merger*")
+ expect(last_note.created_at).to eq(created_at)
+ expect(last_note.author).to eq(project.creator)
+ end
+end