Fix issuable assignee update bug when previous assignee is null
This commit is contained in:
parent
b6d069c10f
commit
77deeb12f7
|
@ -92,9 +92,10 @@ module Issuable
|
|||
after_save :record_metrics
|
||||
|
||||
def update_assignee_cache_counts
|
||||
# make sure we flush the cache for both the old *and* new assignee
|
||||
User.find(assignee_id_was).update_cache_counts if assignee_id_was
|
||||
assignee.update_cache_counts if assignee
|
||||
# make sure we flush the cache for both the old *and* new assignees(if they exist)
|
||||
previous_assignee = User.find_by_id(assignee_id_was)
|
||||
previous_assignee.try(:update_cache_counts)
|
||||
assignee.try(:update_cache_counts)
|
||||
end
|
||||
|
||||
# We want to use optimistic lock for cases when only title or description are involved
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix issuable assignee update bug when previous assignee is null
|
||||
merge_request:
|
||||
author:
|
|
@ -44,6 +44,26 @@ describe Issue, "Issuable" do
|
|||
it { expect(described_class).to respond_to(:assigned) }
|
||||
end
|
||||
|
||||
describe "after_save" do
|
||||
describe "#update_cache_counts" do
|
||||
context "when previous assignee exists" do
|
||||
it "user updates cache counts" do
|
||||
expect(user).to receive(:update_cache_counts)
|
||||
|
||||
issue.update(assignee: user)
|
||||
end
|
||||
end
|
||||
|
||||
context "when previous assignee does not exist" do
|
||||
it "does not raise error" do
|
||||
issue.update(assignee_id: "")
|
||||
|
||||
expect { issue.update(assignee_id: user) }.not_to raise_error
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe ".search" do
|
||||
let!(:searchable_issue) { create(:issue, title: "Searchable issue") }
|
||||
|
||||
|
|
Loading…
Reference in New Issue