summaryrefslogtreecommitdiff
path: root/spec/graphql/types/merge_request_type_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/graphql/types/merge_request_type_spec.rb')
-rw-r--r--spec/graphql/types/merge_request_type_spec.rb39
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