Commit df23494c authored by Sean McGivern's avatar Sean McGivern

Merge branch 'feature/#43691-count-diff-note-calendar-activity' into 'master'

#43691: DiffNotes not counted by ContributionsCalendar

Closes #43691

See merge request gitlab-org/gitlab-ce!17418
parents 5492ea17 5c5fc89b
---
title: Count comments on diffs as contributions for the contributions calendar
merge_request: 17418
author: Riccardo Padovani
type: fixed
...@@ -23,7 +23,7 @@ module Gitlab ...@@ -23,7 +23,7 @@ module Gitlab
mr_events = event_counts(date_from, :merge_requests) mr_events = event_counts(date_from, :merge_requests)
.having(action: [Event::MERGED, Event::CREATED, Event::CLOSED], target_type: "MergeRequest") .having(action: [Event::MERGED, Event::CREATED, Event::CLOSED], target_type: "MergeRequest")
note_events = event_counts(date_from, :merge_requests) note_events = event_counts(date_from, :merge_requests)
.having(action: [Event::COMMENTED], target_type: "Note") .having(action: [Event::COMMENTED], target_type: %w(Note DiffNote))
union = Gitlab::SQL::Union.new([repo_events, issue_events, mr_events, note_events]) union = Gitlab::SQL::Union.new([repo_events, issue_events, mr_events, note_events])
events = Event.find_by_sql(union.to_sql).map(&:attributes) events = Event.find_by_sql(union.to_sql).map(&:attributes)
......
...@@ -11,7 +11,7 @@ describe Gitlab::ContributionsCalendar do ...@@ -11,7 +11,7 @@ describe Gitlab::ContributionsCalendar do
end end
let(:public_project) do let(:public_project) do
create(:project, :public) do |project| create(:project, :public, :repository) do |project|
create(:project_member, user: contributor, project: project) create(:project_member, user: contributor, project: project)
end end
end end
...@@ -40,13 +40,13 @@ describe Gitlab::ContributionsCalendar do ...@@ -40,13 +40,13 @@ describe Gitlab::ContributionsCalendar do
described_class.new(contributor, current_user) described_class.new(contributor, current_user)
end end
def create_event(project, day, hour = 0) def create_event(project, day, hour = 0, action = Event::CREATED, target_symbol = :issue)
@targets ||= {} @targets ||= {}
@targets[project] ||= create(:issue, project: project, author: contributor) @targets[project] ||= create(target_symbol, project: project, author: contributor)
Event.create!( Event.create!(
project: project, project: project,
action: Event::CREATED, action: action,
target: @targets[project], target: @targets[project],
author: contributor, author: contributor,
created_at: DateTime.new(day.year, day.month, day.day, hour) created_at: DateTime.new(day.year, day.month, day.day, hour)
...@@ -71,6 +71,12 @@ describe Gitlab::ContributionsCalendar do ...@@ -71,6 +71,12 @@ describe Gitlab::ContributionsCalendar do
expect(calendar(contributor).activity_dates[today]).to eq(2) expect(calendar(contributor).activity_dates[today]).to eq(2)
end end
it "counts the diff notes on merge request" do
create_event(public_project, today, 0, Event::COMMENTED, :diff_note_on_merge_request)
expect(calendar(contributor).activity_dates[today]).to eq(1)
end
context "when events fall under different dates depending on the time zone" do context "when events fall under different dates depending on the time zone" do
before do before do
create_event(public_project, today, 1) create_event(public_project, today, 1)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment