FIX: Avoid creating a post revision when topic tags have not changed. (#13881)
Co-authored-by: jmperez127 <jmperez127@gmail.com>
This commit is contained in:
parent
c94879ea43
commit
2b5625bbf0
|
@ -372,6 +372,11 @@ class TopicsController < ApplicationController
|
||||||
changes.delete(:title) if topic.title == changes[:title]
|
changes.delete(:title) if topic.title == changes[:title]
|
||||||
changes.delete(:category_id) if topic.category_id.to_i == changes[:category_id].to_i
|
changes.delete(:category_id) if topic.category_id.to_i == changes[:category_id].to_i
|
||||||
|
|
||||||
|
if Tag.include_tags?
|
||||||
|
topic_tags = topic.tags.map(&:name).sort
|
||||||
|
changes.delete(:tags) if changes[:tags]&.sort == topic_tags
|
||||||
|
end
|
||||||
|
|
||||||
success = true
|
success = true
|
||||||
|
|
||||||
if changes.length > 0
|
if changes.length > 0
|
||||||
|
|
|
@ -1470,6 +1470,18 @@ RSpec.describe TopicsController do
|
||||||
expect(response.status).to eq(200)
|
expect(response.status).to eq(200)
|
||||||
expect(topic.tags).to eq([])
|
expect(topic.tags).to eq([])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'does not cause a revision when tags have not changed' do
|
||||||
|
topic.tags << tag
|
||||||
|
|
||||||
|
expect do
|
||||||
|
put "/t/#{topic.slug}/#{topic.id}.json", params: {
|
||||||
|
tags: [tag.name]
|
||||||
|
}
|
||||||
|
end.to change { topic.reload.first_post.revisions.count }.by(0)
|
||||||
|
|
||||||
|
expect(response.status).to eq(200)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'when topic is private' do
|
context 'when topic is private' do
|
||||||
|
|
Loading…
Reference in New Issue