Skip to content
Snippets Groups Projects
Commit 16626409 authored by Stan Hu's avatar Stan Hu
Browse files

Fix Event#reset_project_activity updates

!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.
parent a625757c
No related branches found
No related tags found
No related merge requests found
Loading
Loading
@@ -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
 
Loading
Loading
Loading
Loading
@@ -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
Loading
Loading
@@ -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
 
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment