diff options
Diffstat (limited to 'spec/lib/gitlab/github_import/representation')
8 files changed, 139 insertions, 22 deletions
diff --git a/spec/lib/gitlab/github_import/representation/collaborator_spec.rb b/spec/lib/gitlab/github_import/representation/collaborator_spec.rb index d5952f9459b..cc52c34ec74 100644 --- a/spec/lib/gitlab/github_import/representation/collaborator_spec.rb +++ b/spec/lib/gitlab/github_import/representation/collaborator_spec.rb @@ -20,6 +20,17 @@ RSpec.describe Gitlab::GithubImport::Representation::Collaborator, feature_categ it 'includes the role' do expect(collaborator.role_name).to eq('maintainer') end + + describe '#github_identifiers' do + it 'returns a hash with needed identifiers' do + expect(collaborator.github_identifiers).to eq( + { + id: 42, + login: 'alice' + } + ) + end + end end end diff --git a/spec/lib/gitlab/github_import/representation/issue_event_spec.rb b/spec/lib/gitlab/github_import/representation/issue_event_spec.rb index 0dd281cb3b0..33f0c6d3c64 100644 --- a/spec/lib/gitlab/github_import/representation/issue_event_spec.rb +++ b/spec/lib/gitlab/github_import/representation/issue_event_spec.rb @@ -156,7 +156,11 @@ RSpec.describe Gitlab::GithubImport::Representation::IssueEvent do describe '#github_identifiers' do it 'returns a hash with needed identifiers' do - expect(issue_event.github_identifiers).to eq({ id: 6501124486 }) + expect(issue_event.github_identifiers).to eq( + id: 6501124486, + iid: 2, + event: 'closed' + ) end end end diff --git a/spec/lib/gitlab/github_import/representation/issue_spec.rb b/spec/lib/gitlab/github_import/representation/issue_spec.rb index 263ef8b1708..39447da0fac 100644 --- a/spec/lib/gitlab/github_import/representation/issue_spec.rb +++ b/spec/lib/gitlab/github_import/representation/issue_spec.rb @@ -192,7 +192,8 @@ RSpec.describe Gitlab::GithubImport::Representation::Issue do it 'returns a hash with needed identifiers' do github_identifiers = { iid: 42, - issuable_type: 'MergeRequest' + issuable_type: 'MergeRequest', + title: 'Implement cool feature' } other_attributes = { pull_request: true, something_else: '_something_else_' } issue = described_class.new(github_identifiers.merge(other_attributes)) diff --git a/spec/lib/gitlab/github_import/representation/lfs_object_spec.rb b/spec/lib/gitlab/github_import/representation/lfs_object_spec.rb index 6663a7366a5..799a77afb0c 100644 --- a/spec/lib/gitlab/github_import/representation/lfs_object_spec.rb +++ b/spec/lib/gitlab/github_import/representation/lfs_object_spec.rb @@ -6,7 +6,8 @@ RSpec.describe Gitlab::GithubImport::Representation::LfsObject do describe '#github_identifiers' do it 'returns a hash with needed identifiers' do github_identifiers = { - oid: 42 + oid: 42, + size: 123456 } other_attributes = { something_else: '_something_else_' } lfs_object = described_class.new(github_identifiers.merge(other_attributes)) diff --git a/spec/lib/gitlab/github_import/representation/note_text_spec.rb b/spec/lib/gitlab/github_import/representation/note_text_spec.rb index 8b57c9a0373..7aa458a1c33 100644 --- a/spec/lib/gitlab/github_import/representation/note_text_spec.rb +++ b/spec/lib/gitlab/github_import/representation/note_text_spec.rb @@ -22,35 +22,45 @@ RSpec.describe Gitlab::GithubImport::Representation::NoteText do end describe '.from_db_record' do + let(:representation) { described_class.from_db_record(record) } + context 'with Release' do - let(:record) { build_stubbed(:release, id: 42, description: 'Some text here..') } + let(:record) { build_stubbed(:release, id: 42, description: 'Some text here..', tag: 'v1.0') } + + it_behaves_like 'a Note text data', 'Release' - it_behaves_like 'a Note text data', 'Release' do - let(:representation) { described_class.from_db_record(record) } + it 'includes tag' do + expect(representation.tag).to eq 'v1.0' end end context 'with Issue' do - let(:record) { build_stubbed(:issue, id: 42, description: 'Some text here..') } + let(:record) { build_stubbed(:issue, id: 42, iid: 2, description: 'Some text here..') } + + it_behaves_like 'a Note text data', 'Issue' - it_behaves_like 'a Note text data', 'Issue' do - let(:representation) { described_class.from_db_record(record) } + it 'includes noteable iid' do + expect(representation.iid).to eq 2 end end context 'with MergeRequest' do - let(:record) { build_stubbed(:merge_request, id: 42, description: 'Some text here..') } + let(:record) { build_stubbed(:merge_request, id: 42, iid: 2, description: 'Some text here..') } - it_behaves_like 'a Note text data', 'MergeRequest' do - let(:representation) { described_class.from_db_record(record) } + it_behaves_like 'a Note text data', 'MergeRequest' + + it 'includes noteable iid' do + expect(representation.iid).to eq 2 end end context 'with Note' do - let(:record) { build_stubbed(:note, id: 42, note: 'Some text here..') } + let(:record) { build_stubbed(:note, id: 42, note: 'Some text here..', noteable_type: 'Issue') } + + it_behaves_like 'a Note text data', 'Note' - it_behaves_like 'a Note text data', 'Note' do - let(:representation) { described_class.from_db_record(record) } + it 'includes noteable type' do + expect(representation.noteable_type).to eq 'Issue' end end end @@ -61,7 +71,8 @@ RSpec.describe Gitlab::GithubImport::Representation::NoteText do { 'record_db_id' => 42, 'record_type' => 'Release', - 'text' => 'Some text here..' + 'text' => 'Some text here..', + 'tag' => 'v1.0' } end @@ -70,11 +81,76 @@ RSpec.describe Gitlab::GithubImport::Representation::NoteText do end describe '#github_identifiers' do - it 'returns a hash with needed identifiers' do - record_id = rand(100) - representation = described_class.new(record_db_id: record_id, text: 'text') + let(:iid) { nil } + let(:tag) { nil } + let(:noteable_type) { nil } + let(:hash) do + { + 'record_db_id' => 42, + 'record_type' => record_type, + 'text' => 'Some text here..', + 'iid' => iid, + 'tag' => tag, + 'noteable_type' => noteable_type + } + end + + subject { described_class.from_json_hash(hash) } + + context 'with Release' do + let(:record_type) { 'Release' } + let(:tag) { 'v1.0' } + + it 'returns a hash with needed identifiers' do + expect(subject.github_identifiers).to eq( + { + db_id: 42, + tag: 'v1.0' + } + ) + end + end + + context 'with Issue' do + let(:record_type) { 'Issue' } + let(:iid) { 2 } + + it 'returns a hash with needed identifiers' do + expect(subject.github_identifiers).to eq( + { + db_id: 42, + noteable_iid: 2 + } + ) + end + end - expect(representation.github_identifiers).to eq({ db_id: record_id }) + context 'with Merge Request' do + let(:record_type) { 'MergeRequest' } + let(:iid) { 3 } + + it 'returns a hash with needed identifiers' do + expect(subject.github_identifiers).to eq( + { + db_id: 42, + noteable_iid: 3 + } + ) + end + end + + context 'with Note' do + let(:record_type) { 'Note' } + let(:noteable_type) { 'MergeRequest' } + + it 'returns a hash with needed identifiers' do + expect(subject.github_identifiers).to eq( + { + db_id: 42, + noteable_type: 'MergeRequest' + } + ) + end end end end diff --git a/spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb b/spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb index 0203da9f4fb..8925f466e27 100644 --- a/spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb +++ b/spec/lib/gitlab/github_import/representation/pull_request_review_spec.rb @@ -77,7 +77,7 @@ RSpec.describe Gitlab::GithubImport::Representation::PullRequestReview do it 'returns a hash with needed identifiers' do github_identifiers = { review_id: 999, - merge_request_id: 42 + merge_request_iid: 1 } other_attributes = { something_else: '_something_else_' } review = described_class.new(github_identifiers.merge(other_attributes)) diff --git a/spec/lib/gitlab/github_import/representation/pull_request_spec.rb b/spec/lib/gitlab/github_import/representation/pull_request_spec.rb index b8c1c67e07c..4b8e7401e9d 100644 --- a/spec/lib/gitlab/github_import/representation/pull_request_spec.rb +++ b/spec/lib/gitlab/github_import/representation/pull_request_spec.rb @@ -287,7 +287,8 @@ RSpec.describe Gitlab::GithubImport::Representation::PullRequest do describe '#github_identifiers' do it 'returns a hash with needed identifiers' do github_identifiers = { - iid: 1 + iid: 1, + title: 'My Pull Request' } other_attributes = { something_else: '_something_else_' } pr = described_class.new(github_identifiers.merge(other_attributes)) diff --git a/spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb b/spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb index 0393f692a69..0259fbedee3 100644 --- a/spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb +++ b/spec/lib/gitlab/github_import/representation/pull_requests/review_requests_spec.rb @@ -46,4 +46,27 @@ RSpec.describe Gitlab::GithubImport::Representation::PullRequests::ReviewRequest let(:review_requests) { described_class.from_json_hash(response) } end end + + describe '#github_identifiers' do + it 'returns a hash with needed identifiers' do + review_requests = { + merge_request_iid: 2, + merge_request_id: merge_request_id, + users: [ + { id: 4, login: 'alice' }, + { id: 5, login: 'bob' } + ] + } + + github_identifiers = { + merge_request_iid: 2, + requested_reviewers: %w[alice bob] + } + + other_attributes = { merge_request_id: 123, something_else: '_something_else_' } + review_requests = described_class.new(review_requests.merge(other_attributes)) + + expect(review_requests.github_identifiers).to eq(github_identifiers) + end + end end |