FIX: prevents error if the associated post has been destroyed
This commit is contained in:
parent
ea0dd41046
commit
cced2c8c02
|
@ -169,7 +169,7 @@ after_initialize do
|
||||||
end
|
end
|
||||||
|
|
||||||
add_to_serializer(:post, :include_event?) do
|
add_to_serializer(:post, :include_event?) do
|
||||||
SiteSetting.discourse_post_event_enabled
|
SiteSetting.discourse_post_event_enabled && !object.nil? && !object.deleted_at.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
on(:post_process_cooked) do |doc, post|
|
on(:post_process_cooked) do |doc, post|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "rails_helper"
|
||||||
|
require_relative '../../fabricators/event_fabricator'
|
||||||
|
|
||||||
|
describe PostSerializer do
|
||||||
|
before do
|
||||||
|
Jobs.run_immediately!
|
||||||
|
SiteSetting.calendar_enabled = true
|
||||||
|
SiteSetting.discourse_post_event_enabled = true
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'post has an event' do
|
||||||
|
let(:user) { Fabricate(:user, admin: true) }
|
||||||
|
let(:topic_1) { Fabricate(:topic, user: user) }
|
||||||
|
let(:post_1) { Fabricate(:post, topic: topic_1) }
|
||||||
|
let!(:post_event_1) { Fabricate(:event, post: post_1) }
|
||||||
|
|
||||||
|
it 'serializes the associated event' do
|
||||||
|
json = PostSerializer.new(post_1, scope: Guardian.new).as_json
|
||||||
|
expect(json[:post][:event]).to be_present
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'the post has been destroyed' do
|
||||||
|
before do
|
||||||
|
PostDestroyer.new(Discourse.system_user, post_1).destroy
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'doesn’t serialize the associated event' do
|
||||||
|
json = PostSerializer.new(post_1, scope: Guardian.new).as_json
|
||||||
|
expect(json[:post][:event]).to_not be_present
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue