summaryrefslogtreecommitdiff
path: root/spec/serializers/diffs_entity_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/serializers/diffs_entity_spec.rb')
-rw-r--r--spec/serializers/diffs_entity_spec.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/serializers/diffs_entity_spec.rb b/spec/serializers/diffs_entity_spec.rb
index bb4ac5f9608..b42240037df 100644
--- a/spec/serializers/diffs_entity_spec.rb
+++ b/spec/serializers/diffs_entity_spec.rb
@@ -26,5 +26,47 @@ describe DiffsEntity do
:merge_request_diffs, :definition_path_prefix
)
end
+
+ context "when a commit_id is passed" do
+ let(:commits) { merge_request.commits }
+ let(:entity) do
+ described_class.new(
+ merge_request_diffs.first.diffs,
+ request: request,
+ merge_request: merge_request,
+ merge_request_diffs: merge_request_diffs,
+ commit: commit
+ )
+ end
+
+ subject { entity.as_json }
+
+ context "when the passed commit is not the first or last in the group" do
+ let(:commit) { commits.third }
+
+ it 'includes commit references for previous and next' do
+ expect(subject[:commit][:prev_commit_id]).to eq(commits.second.id)
+ expect(subject[:commit][:next_commit_id]).to eq(commits.fourth.id)
+ end
+ end
+
+ context "when the passed commit is the first in the group" do
+ let(:commit) { commits.first }
+
+ it 'includes commit references for nil and next' do
+ expect(subject[:commit][:prev_commit_id]).to be_nil
+ expect(subject[:commit][:next_commit_id]).to eq(commits.second.id)
+ end
+ end
+
+ context "when the passed commit is the last in the group" do
+ let(:commit) { commits.last }
+
+ it 'includes commit references for previous and nil' do
+ expect(subject[:commit][:prev_commit_id]).to eq(commits[-2].id)
+ expect(subject[:commit][:next_commit_id]).to be_nil
+ end
+ end
+ end
end
end