Read about our upcoming Code of Conduct on this issue

Commit 12670c8c authored by Robert Speicher's avatar Robert Speicher
Browse files

Merge branch '41247-timestamp' into 'master'

Use last_edited_at instead of updated_at for displaying issuable last change

Closes #41247

See merge request gitlab-org/gitlab-ce!16406
......@@ -45,7 +45,7 @@ def realtime_changes
}
if issuable.edited?
response[:updated_at] = issuable.updated_at
response[:updated_at] = issuable.last_edited_at.to_time.iso8601
response[:updated_by_name] = issuable.last_edited_by.name
response[:updated_by_path] = user_path(issuable.last_edited_by)
end
......
......@@ -241,7 +241,7 @@ def updated_at_by(issuable)
return {} unless issuable.edited?
{
updatedAt: issuable.updated_at.to_time.iso8601,
updatedAt: issuable.last_edited_at.to_time.iso8601,
updatedBy: {
name: issuable.last_edited_by.name,
path: user_path(issuable.last_edited_by)
......
---
title: For issues display time of last edit of title or description instead of time
of any attribute change
merge_request:
author:
type: fixed
......@@ -301,6 +301,53 @@ def move_issue
end
end
describe 'GET #realtime_changes' do
def go(id:)
get :realtime_changes,
namespace_id: project.namespace.to_param,
project_id: project,
id: id
end
context 'when an issue was edited' do
before do
project.add_developer(user)
issue.update!(last_edited_by: user, last_edited_at: issue.created_at + 1.minute)
sign_in(user)
end
it 'returns last edited time' do
go(id: issue.iid)
data = JSON.parse(response.body)
expect(data).to include('updated_at')
expect(data['updated_at']).to eq(issue.last_edited_at.to_time.iso8601)
end
end
context 'when an issue was edited by a deleted user' do
let(:deleted_user) { create(:user) }
before do
project.add_developer(user)
issue.update!(last_edited_by: deleted_user, last_edited_at: Time.now)
deleted_user.destroy
sign_in(user)
end
it 'returns 200' do
go(id: issue.iid)
expect(response).to have_gitlab_http_status(200)
end
end
end
describe 'Confidential Issues' do
let(:project) { create(:project_empty_repo, :public) }
let(:assignee) { create(:assignee) }
......@@ -589,25 +636,6 @@ def go(id:)
project_id: project,
id: id
end
context 'when an issue was edited by a deleted user' do
let(:deleted_user) { create(:user) }
before do
project.add_developer(user)
issue.update!(last_edited_by: deleted_user, last_edited_at: Time.now)
deleted_user.destroy
sign_in(user)
end
it 'returns 200' do
go(id: issue.iid)
expect(response).to have_gitlab_http_status(200)
end
end
end
describe 'GET #edit' do
......
......@@ -125,10 +125,10 @@
describe '#updated_at_by' do
let(:user) { create(:user) }
let(:unedited_issuable) { create(:issue) }
let(:edited_issuable) { create(:issue, last_edited_by: user, created_at: 3.days.ago, updated_at: 2.days.ago, last_edited_at: 2.days.ago) }
let(:edited_issuable) { create(:issue, last_edited_by: user, created_at: 3.days.ago, updated_at: 1.day.ago, last_edited_at: 2.days.ago) }
let(:edited_updated_at_by) do
{
updatedAt: edited_issuable.updated_at.to_time.iso8601,
updatedAt: edited_issuable.last_edited_at.to_time.iso8601,
updatedBy: {
name: user.name,
path: user_path(user)
......@@ -142,7 +142,7 @@
context 'when updated by a deleted user' do
let(:edited_updated_at_by) do
{
updatedAt: edited_issuable.updated_at.to_time.iso8601,
updatedAt: edited_issuable.last_edited_at.to_time.iso8601,
updatedBy: {
name: User.ghost.name,
path: user_path(User.ghost)
......
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