Trim attributes that are not useful from `WebHookTopicViewSerializer`.

This commit is contained in:
Guo Xiang Tan 2018-02-27 11:28:31 +08:00
parent 66d620f7b1
commit 519026a31f
2 changed files with 42 additions and 5 deletions

View File

@ -1,11 +1,18 @@
require_dependency 'pinned_check'
class WebHookTopicViewSerializer < TopicViewSerializer
def include_post_stream?
false
end
def include_timeline_lookup?
false
%i{
post_stream
timeline_lookup
pm_with_non_human_user
draft
draft_key
draft_sequence
message_bus_last_id
}.each do |attr|
define_method("include_#{attr}?") do
false
end
end
end

View File

@ -0,0 +1,30 @@
require 'rails_helper'
RSpec.describe WebHookTopicViewSerializer do
let(:admin) { Fabricate(:admin) }
let(:topic) { Fabricate(:topic) }
let(:serializer) do
WebHookTopicViewSerializer.new(TopicView.new(topic),
scope: Guardian.new(admin),
root: false
)
end
it 'should only include the required keys' do
count = serializer.as_json.keys.count
difference = count - 35
expect(difference).to eq(0), lambda {
message = ""
if difference < 0
message << "#{difference * -1} key(s) have been removed from this serializer."
else
message << "#{difference} key(s) have been added to this serializer."
end
message << "\nPlease verify if those key(s) are required as part of the web hook's payload."
}
end
end