2019-04-29 20:27:42 -04:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2022-07-27 22:27:38 -04:00
|
|
|
RSpec.describe TopicViewPostsSerializer do
|
2021-11-24 10:28:20 -05:00
|
|
|
let(:user) { Fabricate(:user) }
|
|
|
|
let(:post) { Fabricate(:post) }
|
|
|
|
let(:topic) { post.topic }
|
|
|
|
let!(:reviewable) do
|
|
|
|
Fabricate(
|
|
|
|
:reviewable_flagged_post,
|
|
|
|
created_by: user,
|
|
|
|
target: post,
|
|
|
|
topic: topic,
|
|
|
|
reviewable_scores: [
|
|
|
|
Fabricate(
|
|
|
|
:reviewable_score,
|
|
|
|
reviewable_score_type: 0,
|
|
|
|
status: ReviewableScore.statuses[:pending],
|
|
|
|
),
|
|
|
|
Fabricate(
|
|
|
|
:reviewable_score,
|
|
|
|
reviewable_score_type: 0,
|
|
|
|
status: ReviewableScore.statuses[:ignored],
|
|
|
|
),
|
2023-01-09 06:18:21 -05:00
|
|
|
],
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
2021-11-24 10:28:20 -05:00
|
|
|
it "should return the right attributes" do
|
2019-06-07 04:12:30 -04:00
|
|
|
topic_view = TopicView.new(topic, user, post_ids: [post.id])
|
|
|
|
|
|
|
|
serializer =
|
2018-06-21 22:38:31 -04:00
|
|
|
TopicViewPostsSerializer.new(topic_view, scope: Guardian.new(Fabricate(:admin)), root: false)
|
|
|
|
|
2019-06-07 04:12:30 -04:00
|
|
|
body = JSON.parse(serializer.to_json)
|
2018-06-21 22:38:31 -04:00
|
|
|
|
|
|
|
posts = body["post_stream"]["posts"]
|
|
|
|
|
|
|
|
expect(posts.count).to eq(1)
|
|
|
|
expect(posts.first["id"]).to eq(post.id)
|
2019-06-07 04:12:30 -04:00
|
|
|
|
|
|
|
expect(posts.first["reviewable_score_count"]).to eq(2)
|
|
|
|
expect(posts.first["reviewable_score_pending_count"]).to eq(1)
|
|
|
|
|
2018-06-21 22:38:31 -04:00
|
|
|
expect(body["post_stream"]["stream"]).to eq(nil)
|
|
|
|
expect(body["post_stream"]["timeline_lookup"]).to eq(nil)
|
2018-07-02 01:58:02 -04:00
|
|
|
expect(body["post_stream"]["gaps"]).to eq(nil)
|
2018-06-21 22:38:31 -04:00
|
|
|
end
|
|
|
|
end
|