diff options
author | Stan Hu <stanhu@gmail.com> | 2016-10-06 15:50:29 -0700 |
---|---|---|
committer | Stan Hu <stanhu@gmail.com> | 2016-10-06 22:56:07 -0700 |
commit | 1662640985b56390a4d22dab1fee7fd04ccd5bc8 (patch) | |
tree | 82f19f1a7071d29a69f51c2f75e1acb3074dd0aa | |
parent | a625757cb469612409d47326241818ddf4fca982 (diff) | |
download | gitlab-ce-1662640985b56390a4d22dab1fee7fd04ccd5bc8.tar.gz |
Fix Event#reset_project_activity updatessh-fix-events-update-spec
!6678 removed the lease from Event#reset_project_activity, but it wasn't
actually updating the project's last_activity_at timestamp properly.
The WHERE clause would always return no matching projects. The spec
passed occasionally because the created_at timestamp was automatically
set to last_activity_at.
-rw-r--r-- | app/models/event.rb | 2 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 5 |
2 files changed, 5 insertions, 2 deletions
diff --git a/app/models/event.rb b/app/models/event.rb index 633019fe0af..314d5ba438f 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -335,7 +335,7 @@ class Event < ActiveRecord::Base # update the project. Only one query should actually perform the update, # hence we add the extra WHERE clause for last_activity_at. Project.unscoped.where(id: project_id). - where('last_activity_at > ?', RESET_PROJECT_ACTIVITY_INTERVAL.ago). + where('last_activity_at <= ?', RESET_PROJECT_ACTIVITY_INTERVAL.ago). update_all(last_activity_at: created_at) end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index e52d4aaf884..67a968aaf11 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -308,7 +308,9 @@ describe Project, models: true do end describe 'last_activity methods' do - let(:project) { create(:project, last_activity_at: 2.hours.ago) } + let(:timestamp) { 2.hours.ago } + # last_activity_at gets set to created_at upon creation + let(:project) { create(:project, created_at: timestamp, updated_at: timestamp) } describe 'last_activity' do it 'alias last_activity to last_event' do @@ -322,6 +324,7 @@ describe Project, models: true do it 'returns the creation date of the project\'s last event if present' do new_event = create(:event, project: project, created_at: Time.now) + project.reload expect(project.last_activity_at.to_i).to eq(new_event.created_at.to_i) end |