summaryrefslogtreecommitdiff
path: root/spec/serializers/paginated_diff_entity_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/serializers/paginated_diff_entity_spec.rb')
-rw-r--r--spec/serializers/paginated_diff_entity_spec.rb33
1 files changed, 33 insertions, 0 deletions
diff --git a/spec/serializers/paginated_diff_entity_spec.rb b/spec/serializers/paginated_diff_entity_spec.rb
new file mode 100644
index 00000000000..7432e072318
--- /dev/null
+++ b/spec/serializers/paginated_diff_entity_spec.rb
@@ -0,0 +1,33 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+describe PaginatedDiffEntity do
+ let(:user) { create(:user) }
+ let(:request) { double('request', current_user: user) }
+ let(:merge_request) { create(:merge_request, :with_diffs) }
+ let(:diff_batch) { merge_request.merge_request_diff.diffs_in_batch(2, 3, diff_options: nil) }
+ let(:options) do
+ {
+ request: request,
+ merge_request: merge_request,
+ pagination_data: diff_batch.pagination_data
+ }
+ end
+ let(:entity) { described_class.new(diff_batch, options) }
+
+ subject { entity.as_json }
+
+ it 'exposes diff_files' do
+ expect(subject[:diff_files]).to be_present
+ end
+
+ it 'exposes pagination data' do
+ expect(subject[:pagination]).to eq(
+ current_page: 2,
+ next_page: 3,
+ next_page_href: "/#{merge_request.project.full_path}/merge_requests/#{merge_request.iid}/diffs_batch.json?page=3",
+ total_pages: 7
+ )
+ end
+end