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
This commit is contained in:
Sean McGivern 2018-03-05 14:51:20 +00:00
commit df23494cd9
3 changed files with 16 additions and 5 deletions

View file

@ -0,0 +1,5 @@
---
title: Count comments on diffs as contributions for the contributions calendar
merge_request: 17418
author: Riccardo Padovani
type: fixed

View file

@ -23,7 +23,7 @@ module Gitlab
mr_events = event_counts(date_from, :merge_requests)
.having(action: [Event::MERGED, Event::CREATED, Event::CLOSED], target_type: "MergeRequest")
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])
events = Event.find_by_sql(union.to_sql).map(&:attributes)

View file

@ -11,7 +11,7 @@ describe Gitlab::ContributionsCalendar do
end
let(:public_project) do
create(:project, :public) do |project|
create(:project, :public, :repository) do |project|
create(:project_member, user: contributor, project: project)
end
end
@ -40,13 +40,13 @@ describe Gitlab::ContributionsCalendar do
described_class.new(contributor, current_user)
end
def create_event(project, day, hour = 0)
def create_event(project, day, hour = 0, action = Event::CREATED, target_symbol = :issue)
@targets ||= {}
@targets[project] ||= create(:issue, project: project, author: contributor)
@targets[project] ||= create(target_symbol, project: project, author: contributor)
Event.create!(
project: project,
action: Event::CREATED,
action: action,
target: @targets[project],
author: contributor,
created_at: DateTime.new(day.year, day.month, day.day, hour)
@ -71,6 +71,12 @@ describe Gitlab::ContributionsCalendar do
expect(calendar(contributor).activity_dates[today]).to eq(2)
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
before do
create_event(public_project, today, 1)