Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/serializers/merge_request_diff_entity_spec.rb')
-rw-r--r--spec/serializers/merge_request_diff_entity_spec.rb68
1 files changed, 66 insertions, 2 deletions
diff --git a/spec/serializers/merge_request_diff_entity_spec.rb b/spec/serializers/merge_request_diff_entity_spec.rb
index a3b356505b8..9bf95e68874 100644
--- a/spec/serializers/merge_request_diff_entity_spec.rb
+++ b/spec/serializers/merge_request_diff_entity_spec.rb
@@ -10,8 +10,16 @@ RSpec.describe MergeRequestDiffEntity do
let(:merge_request_diffs) { merge_request.merge_request_diffs }
let(:merge_request_diff) { merge_request_diffs.first }
- let(:entity) do
- described_class.new(merge_request_diff, request: request, merge_request: merge_request, merge_request_diffs: merge_request_diffs)
+ let(:entity) { initialize_entity(merge_request, merge_request_diff) }
+
+ def initialize_entity(merge_request, merge_request_diff)
+ described_class.new(
+ merge_request_diff,
+ request: request,
+ merge_request: merge_request,
+ merge_request_diff: merge_request_diff,
+ merge_request_diffs: merge_request_diffs
+ )
end
subject { entity.as_json }
@@ -26,6 +34,62 @@ RSpec.describe MergeRequestDiffEntity do
end
end
+ describe '#version_index' do
+ shared_examples 'version_index is nil' do
+ it 'returns nil' do
+ expect(subject[:version_index]).to be_nil
+ end
+ end
+
+ context 'when diff is not present' do
+ let(:entity) do
+ described_class.new(
+ merge_request_diff,
+ request: request,
+ merge_request: merge_request,
+ merge_request_diffs: merge_request_diffs
+ )
+ end
+
+ it_behaves_like 'version_index is nil'
+ end
+
+ context 'when diff is not included in @merge_request_diffs' do
+ let(:merge_request_diff) { create(:merge_request_diff) }
+ let(:merge_request_diff_2) { create(:merge_request_diff) }
+
+ before do
+ merge_request_diffs << merge_request_diff_2
+ end
+
+ it_behaves_like 'version_index is nil'
+ end
+
+ context 'when @merge_request_diffs.size <= 1' do
+ before do
+ expect(merge_request_diffs.size).to eq(1)
+ end
+
+ it_behaves_like 'version_index is nil'
+ end
+
+ context 'when @merge_request_diffs.size > 1' do
+ let(:merge_request) { create(:merge_request_with_multiple_diffs) }
+
+ it 'returns difference between size and diff index' do
+ expect(merge_request_diffs.size).to eq(2)
+
+ # diff index: 0
+ subject = initialize_entity(merge_request, merge_request_diffs.first)
+ expect(subject.as_json[:version_index]).to eq(2)
+
+ # diff index: 1
+ subject = initialize_entity(merge_request, merge_request_diffs.last)
+ expect(subject.as_json[:version_index]).to eq(1)
+ end
+ end
+ end
+
describe '#short_commit_sha' do
it 'returns short sha' do
expect(subject[:short_commit_sha]).to eq('b83d6e39')