# frozen_string_literal: true describe BasicReviewableFlaggedPostSerializer do subject(:serializer) { described_class.new(reviewable, root: false).as_json } fab!(:topic) { Fabricate(:topic, title: "safe title hello world") } fab!(:post) { Fabricate(:post, topic: topic) } fab!(:reviewable) do ReviewableFlaggedPost.needs_review!( target: post, topic: topic, created_by: Discourse.system_user, ) end include_examples "basic reviewable attributes" describe "#post_number" do it "equals the post_number of the post" do expect(serializer[:post_number]).to eq(post.post_number) end it "is not included if the reviewable is associated with no post" do reviewable.update!(target: nil) expect(serializer.key?(:post_number)).to eq(false) end end describe "#topic_fancy_title" do it "equals the fancy_title of the topic" do expect(serializer[:topic_fancy_title]).to eq("Safe title <a> hello world") end it "is not included if the reviewable is associated with no topic" do reviewable.update!(topic: nil) expect(serializer.key?(:topic_fancy_title)).to eq(false) end end end