diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-01-04 19:46:40 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-01-04 19:46:40 +0300 |
commit | d83c4049de46b44c2ac8140345d74fb8f0487370 (patch) | |
tree | cf921f107a7c677535bf1f52dfec7ee9c7b6b7d4 /spec | |
parent | 7d3e6d09021b677c4765a58540d1278bc3948322 (diff) | |
parent | dac51ace521d7b2b2a5a5bb19167a8690ead242e (diff) |
Merge branch 'conditionally-eager-load-event-target-authors' into 'master'
Eager load event target authors whenever possible
Closes #41618
See merge request gitlab-org/gitlab-ce!16199
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/dashboard/activity_spec.rb | 7 | ||||
-rw-r--r-- | spec/models/event_spec.rb | 16 |
2 files changed, 23 insertions, 0 deletions
diff --git a/spec/features/dashboard/activity_spec.rb b/spec/features/dashboard/activity_spec.rb index bd115785646..a74a8aac2b2 100644 --- a/spec/features/dashboard/activity_spec.rb +++ b/spec/features/dashboard/activity_spec.rb @@ -24,6 +24,7 @@ feature 'Dashboard > Activity' do end let(:note) { create(:note, project: project, noteable: merge_request) } + let(:milestone) { create(:milestone, :active, project: project, title: '1.0') } let!(:push_event) do event = create(:push_event, project: project, author: user) @@ -54,6 +55,10 @@ feature 'Dashboard > Activity' do create(:event, :commented, project: project, target: note, author: user) end + let!(:milestone_event) do + create(:event, :closed, project: project, target: milestone, author: user) + end + before do project.add_master(user) @@ -68,6 +73,7 @@ feature 'Dashboard > Activity' do expect(page).to have_content('accepted') expect(page).to have_content('closed') expect(page).to have_content('commented on') + expect(page).to have_content('closed milestone') end end @@ -107,6 +113,7 @@ feature 'Dashboard > Activity' do expect(page).not_to have_content('accepted') expect(page).to have_content('closed') expect(page).not_to have_content('commented on') + expect(page).to have_content('closed milestone') end end diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb index e999192940c..67f49348acb 100644 --- a/spec/models/event_spec.rb +++ b/spec/models/event_spec.rb @@ -347,6 +347,22 @@ describe Event do end end + describe '#target' do + it 'eager loads the author of an event target' do + create(:closed_issue_event) + + events = described_class.preload(:target).all.to_a + count = ActiveRecord::QueryRecorder + .new { events.first.target.author }.count + + # This expectation exists to make sure the test doesn't pass when the + # author is for some reason not loaded at all. + expect(events.first.target.author).to be_an_instance_of(User) + + expect(count).to be_zero + end + end + def create_push_event(project, user) event = create(:push_event, project: project, author: user) |