discourse/spec/serializers/topic_view_posts_serializer_spec.rb
Daniel Waterworth e219588142 DEV: Prefabrication (test optimization) ()
* Introduced fab!, a helper that creates database state for a group

It's almost identical to let_it_be, except:

 1. It creates a new object for each test by default,
 2. You can disable it using PREFABRICATION=0
2019-05-07 13:12:20 +10:00

30 lines
776 B
Ruby

# frozen_string_literal: true
require 'rails_helper'
RSpec.describe TopicViewPostsSerializer do
fab!(:user) { Fabricate(:user) }
fab!(:post) { Fabricate(:post) }
let(:topic) { post.topic }
let(:topic_view) { TopicView.new(topic, user, post_ids: [post.id]) }
subject do
described_class.new(topic_view,
scope: Guardian.new(Fabricate(:admin)),
root: false
)
end
it 'should return the right attributes' do
body = JSON.parse(subject.to_json)
posts = body["post_stream"]["posts"]
expect(posts.count).to eq(1)
expect(posts.first["id"]).to eq(post.id)
expect(body["post_stream"]["stream"]).to eq(nil)
expect(body["post_stream"]["timeline_lookup"]).to eq(nil)
expect(body["post_stream"]["gaps"]).to eq(nil)
end
end