Commit 57110044 authored by George Koltsov's avatar George Koltsov

Add bitbucket_import/importer_spec.rb spec

- Replace `username` field with `nickname` due to updates in
BitBucket Cloud API
- Add new imported spec validating addition of `authod_line`
parent 3741f2a2
...@@ -4,7 +4,7 @@ require 'spec_helper' ...@@ -4,7 +4,7 @@ require 'spec_helper'
describe Bitbucket::Representation::Comment do describe Bitbucket::Representation::Comment do
describe '#author' do describe '#author' do
it { expect(described_class.new('user' => { 'username' => 'Ben' }).author).to eq('Ben') } it { expect(described_class.new('user' => { 'nickname' => 'Ben' }).author).to eq('Ben') }
it { expect(described_class.new({}).author).to be_nil } it { expect(described_class.new({}).author).to be_nil }
end end
......
...@@ -17,7 +17,7 @@ describe Bitbucket::Representation::Issue do ...@@ -17,7 +17,7 @@ describe Bitbucket::Representation::Issue do
end end
describe '#author' do describe '#author' do
it { expect(described_class.new({ 'reporter' => { 'username' => 'Ben' } }).author).to eq('Ben') } it { expect(described_class.new({ 'reporter' => { 'nickname' => 'Ben' } }).author).to eq('Ben') }
it { expect(described_class.new({}).author).to be_nil } it { expect(described_class.new({}).author).to be_nil }
end end
......
...@@ -8,7 +8,7 @@ describe Bitbucket::Representation::PullRequest do ...@@ -8,7 +8,7 @@ describe Bitbucket::Representation::PullRequest do
end end
describe '#author' do describe '#author' do
it { expect(described_class.new({ 'author' => { 'username' => 'Ben' } }).author).to eq('Ben') } it { expect(described_class.new({ 'author' => { 'nickname' => 'Ben' } }).author).to eq('Ben') }
it { expect(described_class.new({}).author).to be_nil } it { expect(described_class.new({}).author).to be_nil }
end end
......
...@@ -25,12 +25,12 @@ describe Gitlab::BitbucketImport::Importer do ...@@ -25,12 +25,12 @@ describe Gitlab::BitbucketImport::Importer do
let(:reporters) do let(:reporters) do
[ [
nil, nil,
{ "username" => "reporter1" }, { "nickname" => "reporter1" },
nil, nil,
{ "username" => "reporter2" }, { "nickname" => "reporter2" },
{ "username" => "reporter1" }, { "nickname" => "reporter1" },
nil, nil,
{ "username" => "reporter3" } { "nickname" => "reporter3" }
] ]
end end
...@@ -115,6 +115,7 @@ describe Gitlab::BitbucketImport::Importer do ...@@ -115,6 +115,7 @@ describe Gitlab::BitbucketImport::Importer do
created_at: Time.now, created_at: Time.now,
updated_at: Time.now) updated_at: Time.now)
end end
let(:author_line) { "*Created by: someuser*\n\n" }
before do before do
allow(subject).to receive(:import_wiki) allow(subject).to receive(:import_wiki)
...@@ -128,7 +129,7 @@ describe Gitlab::BitbucketImport::Importer do ...@@ -128,7 +129,7 @@ describe Gitlab::BitbucketImport::Importer do
old_pos: nil, old_pos: nil,
new_pos: 4, new_pos: 4,
note: 'Hello world', note: 'Hello world',
author: 'root', author: 'someuser',
created_at: Time.now, created_at: Time.now,
updated_at: Time.now, updated_at: Time.now,
inline?: true, inline?: true,
...@@ -139,7 +140,7 @@ describe Gitlab::BitbucketImport::Importer do ...@@ -139,7 +140,7 @@ describe Gitlab::BitbucketImport::Importer do
iid: 3, iid: 3,
file_path: '.gitmodules', file_path: '.gitmodules',
note: 'Hello world', note: 'Hello world',
author: 'root', author: 'someuser',
created_at: Time.now, created_at: Time.now,
updated_at: Time.now, updated_at: Time.now,
inline?: true, inline?: true,
...@@ -163,11 +164,33 @@ describe Gitlab::BitbucketImport::Importer do ...@@ -163,11 +164,33 @@ describe Gitlab::BitbucketImport::Importer do
notes = merge_request.notes.order(:id).to_a notes = merge_request.notes.order(:id).to_a
start_note = notes.first start_note = notes.first
expect(start_note).to be_a(DiffNote) expect(start_note).to be_a(DiffNote)
expect(start_note.note).to eq(@inline_note.note) expect(start_note.note).to include(@inline_note.note)
expect(start_note.note).to include(author_line)
reply_note = notes.last reply_note = notes.last
expect(reply_note).to be_a(DiffNote) expect(reply_note).to be_a(DiffNote)
expect(reply_note.note).to eq(@reply.note) expect(reply_note.note).to include(@reply.note)
expect(reply_note.note).to include(author_line)
end
context 'when user exists in GitLab' do
let!(:existing_user) { create(:user, username: 'someuser') }
let!(:identity) { create(:identity, provider: 'bitbucket', extern_uid: existing_user.username, user: existing_user) }
it 'does not add author line to comments' do
expect { subject.execute }.to change { MergeRequest.count }.by(1)
merge_request = MergeRequest.first
notes = merge_request.notes.order(:id).to_a
start_note = notes.first
expect(start_note.note).to include(@inline_note.note)
expect(start_note.note).not_to include(author_line)
reply_note = notes.last
expect(reply_note.note).to include(@reply.note)
expect(reply_note.note).not_to include(author_line)
end
end end
context 'when importing a pull request throws an exception' do context 'when importing a pull request throws an exception' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment