FIX: Properly fabricate data for topic query specs. (#209)

We were creating PM topics that did not have any posts.
This commit is contained in:
Alan Guo Xiang Tan 2021-09-15 13:00:28 +08:00 committed by GitHub
parent 5f7adcc786
commit 5f97e1603d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 38 additions and 28 deletions

View File

@ -19,9 +19,12 @@ describe TopicQuery do
end end
describe '#list_messages_assigned' do describe '#list_messages_assigned' do
fab!(:private_message) { Fabricate(:private_message_topic, user: user) } fab!(:private_message) do
fab!(:topic) { Fabricate(:topic, user: user) } Fabricate(:private_message_post, user: user).topic
fab!(:group_topic) { Fabricate(:topic, user: user) } end
fab!(:topic) { Fabricate(:post, user: user).topic }
fab!(:group_topic) { Fabricate(:post, user: user).topic }
before do before do
assign_to(private_message, user, user) assign_to(private_message, user, user)
@ -58,9 +61,13 @@ describe TopicQuery do
describe '#list_group_topics_assigned' do describe '#list_group_topics_assigned' do
fab!(:private_message) { Fabricate(:private_message_topic, user: user) } fab!(:private_message) do
fab!(:topic) { Fabricate(:topic, user: user) } Fabricate(:private_message_post, user: user).topic
fab!(:group_topic) { Fabricate(:topic, user: user) } end
fab!(:topic) { Fabricate(:post, user: user).topic }
fab!(:group_topic) { Fabricate(:post, user: user).topic }
before do before do
assign_to(private_message, user, user) assign_to(private_message, user, user)
@ -91,42 +98,46 @@ describe TopicQuery do
describe '#list_private_messages_assigned' do describe '#list_private_messages_assigned' do
let(:user_topic) do let(:user_topic) do
topic = Fabricate(:private_message_topic, topic = create_post(
topic_allowed_users: [ user: Fabricate(:user),
Fabricate.build(:topic_allowed_user, user: user), target_usernames: [user.username, user2.username],
Fabricate.build(:topic_allowed_user, user: user2) archetype: Archetype.private_message
], ).topic
)
create_post(topic_id: topic.id, user: user)
topic.posts << Fabricate(:post)
topic topic
end end
let(:assigned_topic) do let(:assigned_topic) do
topic = Fabricate(:private_message_topic, topic = create_post(
topic_allowed_users: [ user: Fabricate(:user),
Fabricate.build(:topic_allowed_user, user: user), target_usernames: [user.username, user2.username],
Fabricate.build(:topic_allowed_user, user: user2) archetype: Archetype.private_message
], ).topic
)
assign_to(topic, user, user) assign_to(topic, user, user)
end end
let(:group2) { Fabricate(:group) } let(:group2) do
Fabricate(:group, messageable_level: Group::ALIAS_LEVELS[:everyone])
end
let(:group_assigned_topic) do let(:group_assigned_topic) do
topic = Fabricate(:private_message_topic, topic = create_post(
topic_allowed_users: [], user: user,
topic_allowed_groups: [ target_group_names: [assign_allowed_group.name, group2.name],
Fabricate.build(:topic_allowed_group, group: assign_allowed_group), archetype: Archetype.private_message
Fabricate.build(:topic_allowed_group, group: group2) ).topic
],
)
assign_to(topic, user, user) assign_to(topic, user, user)
end end
before do before do
assign_allowed_group.update!(
messageable_level: Group::ALIAS_LEVELS[:everyone]
)
user_topic user_topic
assigned_topic assigned_topic
group_assigned_topic group_assigned_topic
@ -207,7 +218,6 @@ describe TopicQuery do
def assign_to(topic, user, assignee) def assign_to(topic, user, assignee)
topic.tap do |t| topic.tap do |t|
t.posts << Fabricate(:post)
TopicAssigner.new(t, user).assign(assignee) TopicAssigner.new(t, user).assign(assignee)
end end
end end