From 57c9a89313ff4fbaaf50e434ef37e956d0e80d0e Mon Sep 17 00:00:00 2001 From: Stan Hu Date: Sun, 15 Jul 2018 15:36:18 -0700 Subject: Fix assorted bugs and write spec for importing merge event --- .../bitbucket_server_import/importer_spec.rb | 64 +++++++++++++++++++++- 1 file changed, 62 insertions(+), 2 deletions(-) (limited to 'spec/lib/gitlab/bitbucket_server_import') 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 -- cgit v1.2.3