mirror of
https://github.com/discourse/discourse.git
synced 2024-11-25 02:11:08 -06:00
DEV: Spec clarification example (#7458)
This commit is contained in:
parent
7b1783bae8
commit
75a6c440f7
@ -4,47 +4,42 @@ require 'rails_helper'
|
||||
|
||||
describe TopicPostersSummary do
|
||||
describe '#summary' do
|
||||
let(:summary) { described_class.new(topic).summary }
|
||||
let!(:topic_creator) { Fabricate(:user) }
|
||||
|
||||
let(:topic) do
|
||||
Fabricate(:topic,
|
||||
user: topic_creator,
|
||||
last_poster: last_poster,
|
||||
featured_user1: featured_user1,
|
||||
featured_user2: featured_user2,
|
||||
featured_user3: featured_user3,
|
||||
featured_user4: featured_user4
|
||||
)
|
||||
end
|
||||
|
||||
let(:topic_creator) { Fabricate(:user) }
|
||||
let(:last_poster) { nil }
|
||||
let(:featured_user1) { nil }
|
||||
let(:featured_user2) { nil }
|
||||
let(:featured_user3) { nil }
|
||||
let(:featured_user4) { nil }
|
||||
|
||||
it 'contains only the topic creator when there are no other posters' do
|
||||
expect(summary.count).to eq 1
|
||||
|
||||
summary.first.tap do |topic_poster|
|
||||
expect(topic_poster.user).to eq topic_creator
|
||||
expect(topic_poster.description).to eq(
|
||||
"#{I18n.t(:original_poster)}, #{I18n.t(:most_recent_poster)}"
|
||||
context "when there are no other posters" do
|
||||
let!(:topic) do
|
||||
Fabricate(:topic,
|
||||
user: topic_creator,
|
||||
)
|
||||
end
|
||||
|
||||
let!(:summary) { described_class.new(topic).summary }
|
||||
|
||||
it 'contains only the topic creator' do
|
||||
expect(summary.count).to eq 1
|
||||
|
||||
summary.first.tap do |topic_poster|
|
||||
expect(topic_poster.user).to eq topic_creator
|
||||
expect(topic_poster.description).to eq(
|
||||
"#{I18n.t(:original_poster)}, #{I18n.t(:most_recent_poster)}"
|
||||
)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when the lastest poster is also the topic creator' do
|
||||
let(:last_poster) { topic_creator }
|
||||
let(:featured_user1) { Fabricate(:user) }
|
||||
context 'when the last poster is also the topic creator' do
|
||||
let!(:featured_user1) { Fabricate(:user) }
|
||||
|
||||
before do
|
||||
topic.last_poster = topic_creator
|
||||
topic.featured_user1 = featured_user1
|
||||
topic.save!
|
||||
let!(:topic) do
|
||||
Fabricate(:topic,
|
||||
user: topic_creator,
|
||||
last_poster: topic_creator,
|
||||
featured_user1: featured_user1,
|
||||
)
|
||||
end
|
||||
|
||||
let!(:summary) { described_class.new(topic).summary }
|
||||
|
||||
it 'keeps the topic creator at the front of the summary' do
|
||||
expect(summary.map(&:user)).to eq([
|
||||
topic_creator,
|
||||
@ -54,11 +49,24 @@ describe TopicPostersSummary do
|
||||
end
|
||||
|
||||
context 'when the topic has many posters' do
|
||||
let(:last_poster) { Fabricate(:user) }
|
||||
let(:featured_user1) { Fabricate(:user) }
|
||||
let(:featured_user2) { Fabricate(:user) }
|
||||
let(:featured_user3) { Fabricate(:user) }
|
||||
let(:featured_user4) { Fabricate(:user) }
|
||||
let!(:last_poster) { Fabricate(:user) }
|
||||
let!(:featured_user1) { Fabricate(:user) }
|
||||
let!(:featured_user2) { Fabricate(:user) }
|
||||
let!(:featured_user3) { Fabricate(:user) }
|
||||
let!(:featured_user4) { Fabricate(:user) }
|
||||
|
||||
let!(:topic) do
|
||||
Fabricate(:topic,
|
||||
user: topic_creator,
|
||||
last_poster: last_poster,
|
||||
featured_user1: featured_user1,
|
||||
featured_user2: featured_user2,
|
||||
featured_user3: featured_user3,
|
||||
featured_user4: featured_user4
|
||||
)
|
||||
end
|
||||
|
||||
let!(:summary) { described_class.new(topic).summary }
|
||||
|
||||
it 'contains only five posters with latest poster at the end' do
|
||||
expect(summary.map(&:user)).to eq([
|
||||
|
Loading…
Reference in New Issue
Block a user