gitlab-org--gitlab-foss/spec/serializers/discussion_diff_file_entity_spec.rb
Oswaldo Ferreira 26b94bcc7d Remove unused data from discussions endpoint
We don't need a series of attributes to render diff files on
discussions.json request. Therefore this MR removes lots of unnecessary
attributes from the request, mainly the highlighted diff lines, which
are pretty expensive.
2018-12-06 17:07:49 -08:00

39 lines
1.3 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
describe DiscussionDiffFileEntity do
include RepoHelpers
let(:project) { create(:project, :repository) }
let(:repository) { project.repository }
let(:commit) { project.commit(sample_commit.id) }
let(:diff_refs) { commit.diff_refs }
let(:diff) { commit.raw_diffs.first }
let(:diff_file) { Gitlab::Diff::File.new(diff, diff_refs: diff_refs, repository: repository) }
let(:entity) { described_class.new(diff_file, request: {}) }
subject { entity.as_json }
context 'when there is no merge request' do
it_behaves_like 'diff file discussion entity'
end
context 'when there is a merge request' do
let(:user) { create(:user) }
let(:request) { EntityRequest.new(project: project, current_user: user) }
let(:merge_request) { create(:merge_request, source_project: project, target_project: project) }
let(:entity) { described_class.new(diff_file, request: request, merge_request: merge_request) }
it_behaves_like 'diff file discussion entity'
it 'exposes additional attributes' do
expect(subject).to include(:edit_path)
end
it 'exposes no diff lines' do
expect(subject).not_to include(:highlighted_diff_lines,
:parallel_diff_lines)
end
end
end