diff options
Diffstat (limited to 'spec/graphql/types/merge_request_type_spec.rb')
-rw-r--r-- | spec/graphql/types/merge_request_type_spec.rb | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/spec/graphql/types/merge_request_type_spec.rb b/spec/graphql/types/merge_request_type_spec.rb index 46aebbdabeb..9d901655b7b 100644 --- a/spec/graphql/types/merge_request_type_spec.rb +++ b/spec/graphql/types/merge_request_type_spec.rb @@ -27,16 +27,51 @@ RSpec.describe GitlabSchema.types['MergeRequest'] do upvotes downvotes head_pipeline pipelines task_completion_status milestone assignees participants subscribed labels discussion_locked time_estimate total_time_spent reference author merged_at commit_count current_user_todos - conflicts auto_merge_enabled + conflicts auto_merge_enabled approved_by ] if Gitlab.ee? expected_fields << 'approved' expected_fields << 'approvals_left' expected_fields << 'approvals_required' - expected_fields << 'approved_by' end expect(described_class).to have_graphql_fields(*expected_fields) end + + describe '#diff_stats_summary' do + subject { GitlabSchema.execute(query, context: { current_user: current_user }).as_json } + + let(:current_user) { create :admin } + let(:query) do + %( + { + project(fullPath: "#{project.full_path}") { + mergeRequests { + nodes { + diffStatsSummary { + additions, deletions + } + } + } + } + } + ) + end + + let(:project) { create(:project, :public) } + let(:merge_request) { create(:merge_request, target_project: project, source_project: project) } + + let(:response) { subject.dig('data', 'project', 'mergeRequests', 'nodes').first['diffStatsSummary'] } + + context 'when MR metrics has additions and deletions' do + before do + merge_request.metrics.update!(added_lines: 5, removed_lines: 8) + end + + it 'pulls out data from metrics object' do + expect(response).to match('additions' => 5, 'deletions' => 8) + end + end + end end |