summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/bitbucket_server_import
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2018-07-15 15:36:18 -0700
committerStan Hu <stanhu@gmail.com>2018-07-15 15:36:18 -0700
commit57c9a89313ff4fbaaf50e434ef37e956d0e80d0e (patch)
tree6a318e777eb77752d01efe6df22ba3fe08962d37 /spec/lib/gitlab/bitbucket_server_import
parenteb482bfa59aacaa92f801ed9a38b8778f23a028e (diff)
downloadgitlab-ce-57c9a89313ff4fbaaf50e434ef37e956d0e80d0e.tar.gz
Fix assorted bugs and write spec for importing merge event
Diffstat (limited to 'spec/lib/gitlab/bitbucket_server_import')
-rw-r--r--spec/lib/gitlab/bitbucket_server_import/importer_spec.rb64
1 files changed, 62 insertions, 2 deletions
diff --git a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
index 73875b92b71..a05fd53ecf9 100644
--- a/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
+++ b/spec/lib/gitlab/bitbucket_server_import/importer_spec.rb
@@ -3,7 +3,7 @@ require 'spec_helper'
describe Gitlab::BitbucketServerImport::Importer do
include ImportSpecHelper
- let(:project) { create(:project, import_url: 'http://my-bitbucket') }
+ set(:project) { create(:project, :repository, import_url: 'http://my-bitbucket') }
subject { described_class.new(project) }
@@ -32,11 +32,71 @@ describe Gitlab::BitbucketServerImport::Importer do
end
end
+ # XXX We don't handle pull requests across forks
describe '#import_pull_requests' do
+ before do
+ allow(subject).to receive(:import_repository)
+ allow(subject).to receive(:delete_temp_branches)
+ allow(subject).to receive(:restore_branches)
+
+ sample = RepoHelpers.sample_compare
+ pull_request = instance_double(
+ BitbucketServer::Representation::PullRequest,
+ iid: 10,
+ source_branch_sha: sample.commits.last,
+ source_branch_name: Gitlab::Git::BRANCH_REF_PREFIX + sample.source_branch,
+ target_branch_sha: sample.commits.first,
+ target_branch_name: Gitlab::Git::BRANCH_REF_PREFIX + sample.target_branch,
+ title: 'This is a title',
+ description: 'This is a test pull request',
+ state: 'merged',
+ author: 'Test Author',
+ author_email: project.owner.email,
+ created_at: Time.now,
+ updated_at: Time.now,
+ merged?: true)
+
+ expect(subject.client).to receive(:pull_requests).and_return([pull_request])
+
+ @merge_event = instance_double(
+ BitbucketServer::Representation::Activity,
+ comment?: false,
+ merge_event?: true,
+ committer_email: project.owner.email,
+ merge_timestamp: Time.now)
+ @inline_comment = instance_double(
+ BitbucketServer::Representation::Activity,
+ comment?: true,
+ merge_event?: false)
+ @pr_comment = instance_double(
+ BitbucketServer::Representation::Activity,
+ comment?: true,
+ merge_event?: false)
+ end
+
+ it 'handles merge event' do
+ expect(subject.client).to receive(:activities).and_return([@merge_event])
+
+ expect { subject.execute }.to change { MergeRequest.count }.by(1)
+
+ merge_request = MergeRequest.first
+ expect(merge_request.metrics.merged_by).to eq(project.owner)
+ expect(merge_request.metrics.merged_at).to eq(@merge_event.merge_timestamp)
+ end
+ context 'handles comments' do
+ end
+
+ context 'handles diff comments' do
+ end
+
+ context 'falls back to comments if diff comments' do
+ end
+
+ context 'restores branches of inaccessible SHAs' do
+ end
end
describe '#delete_temp_branches' do
-
end
end