diff options
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.rb | 41 |
1 files changed, 25 insertions, 16 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 index 2999dc5bb41..e42b6d89c30 100644 --- 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 @@ -5,37 +5,46 @@ 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(:merged_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_at: merged_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') + context 'when the merger user can be mapped' do + it 'assigns the merged by user when mapped' do + merge_user = create(:user, email: 'merger@email.com') - subject.execute + subject.execute - expect(merge_request.metrics.reload.merged_by).to eq(merge_user) + metrics = merge_request.metrics.reload + expect(metrics.merged_by).to eq(merge_user) + expect(metrics.merged_at).to eq(merged_at) + end 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) + context 'when the merger user cannot be mapped to a gitlab user' do + it 'adds a note referencing the merger user' do + expect { subject.execute } + .to change(Note, :count).by(1) + .and not_change(merge_request, :updated_at) + + metrics = merge_request.metrics.reload + expect(metrics.merged_by).to be_nil + expect(metrics.merged_at).to eq(merged_at) + + last_note = merge_request.notes.last + expect(last_note.note).to eq("*Merged by: merger at 2017-01-01 12:00:00 UTC*") + expect(last_note.created_at).to eq(merged_at) + expect(last_note.author).to eq(project.creator) + end end end |