# frozen_string_literal: true RSpec.describe WebHookTopicViewSerializer do fab!(:admin) { Fabricate(:admin) } fab!(:topic) { Fabricate(:topic) } let(:serializer) do WebHookTopicViewSerializer.new(TopicView.new(topic), scope: Guardian.new(admin), root: false) end before { SiteSetting.tagging_enabled = true } it "should only include the keys that are sent out in the webhook" do expected_keys = %i[ id title fancy_title posts_count created_at views reply_count like_count last_posted_at visible closed archived archetype slug category_id word_count deleted_at user_id featured_link pinned_globally pinned_at pinned_until unpinned pinned highest_post_number deleted_by bookmarked participant_count created_by last_poster tags tags_descriptions thumbnails ] keys = serializer.as_json.keys expect(serializer.as_json.keys).to contain_exactly(*expected_keys) topic.external_id = "external_id" expected_keys << :external_id expect(serializer.as_json.keys).to contain_exactly(*expected_keys) end end