2021-08-27 00:16:00 +08:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
RSpec.describe PendingPostSerializer do
|
|
|
|
subject(:serializer) { described_class.new(post, scope: guardian, root: false) }
|
|
|
|
|
|
|
|
let(:guardian) { Guardian.new(author) }
|
2023-09-04 06:14:51 +08:00
|
|
|
let(:author) { post.target_created_by }
|
2021-08-27 00:16:00 +08:00
|
|
|
|
|
|
|
before { freeze_time }
|
|
|
|
|
|
|
|
context "when creating a new topic" do
|
|
|
|
let(:post) { Fabricate(:reviewable_queued_post_topic) }
|
|
|
|
let(:expected_attributes) do
|
|
|
|
{
|
|
|
|
id: post.id,
|
|
|
|
avatar_template: author.avatar_template,
|
|
|
|
category_id: post.category_id,
|
|
|
|
created_at: Time.current,
|
|
|
|
created_by_id: author.id,
|
|
|
|
name: author.name,
|
|
|
|
raw_text: post.payload["raw"],
|
|
|
|
title: post.payload["title"],
|
|
|
|
topic_id: nil,
|
|
|
|
topic_url: nil,
|
|
|
|
username: author.username,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
it "serializes a pending post properly" do
|
|
|
|
expect(serializer.as_json).to match expected_attributes
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "when not creating a new topic" do
|
|
|
|
let(:post) { Fabricate(:reviewable_queued_post) }
|
|
|
|
let(:topic) { post.topic }
|
|
|
|
let(:expected_attributes) do
|
|
|
|
{
|
|
|
|
id: post.id,
|
|
|
|
avatar_template: author.avatar_template,
|
|
|
|
category_id: post.category_id,
|
|
|
|
created_at: Time.current,
|
|
|
|
created_by_id: author.id,
|
|
|
|
name: author.name,
|
|
|
|
raw_text: post.payload["raw"],
|
|
|
|
title: topic.title,
|
|
|
|
topic_id: topic.id,
|
|
|
|
topic_url: topic.url,
|
|
|
|
username: author.username,
|
|
|
|
}
|
|
|
|
end
|
|
|
|
|
|
|
|
it "serializes a pending post properly" do
|
|
|
|
expect(serializer.as_json).to match expected_attributes
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|