DEV: Add/use two topic fabricators (#27603)
```rb Fabricate(:new_reply_topic, count: 1, current_user:) ``` and ```rb Fabricate(:read_topic, current_user:) ```
This commit is contained in:
parent
d63f1826fe
commit
24d0c3aadf
|
@ -37,6 +37,7 @@ Fabricator(:group_private_message_topic, from: :topic) do
|
||||||
end
|
end
|
||||||
|
|
||||||
Fabricator(:new_reply_topic, from: :topic) do
|
Fabricator(:new_reply_topic, from: :topic) do
|
||||||
|
transient count: 1
|
||||||
transient :current_user
|
transient :current_user
|
||||||
|
|
||||||
before_create do |topic, transient|
|
before_create do |topic, transient|
|
||||||
|
@ -46,7 +47,7 @@ Fabricator(:new_reply_topic, from: :topic) do
|
||||||
end
|
end
|
||||||
|
|
||||||
after_create do |topic, transient|
|
after_create do |topic, transient|
|
||||||
Fabricate.times(2, :post, topic: topic)
|
Fabricate.times(transient[:count] + 1, :post, topic: topic)
|
||||||
TopicUser.change(
|
TopicUser.change(
|
||||||
transient[:current_user].id,
|
transient[:current_user].id,
|
||||||
topic.id,
|
topic.id,
|
||||||
|
@ -55,3 +56,18 @@ Fabricator(:new_reply_topic, from: :topic) do
|
||||||
TopicUser.update_last_read(transient[:current_user], topic.id, 1, 1, 1)
|
TopicUser.update_last_read(transient[:current_user], topic.id, 1, 1, 1)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Fabricator(:read_topic, from: :topic) do
|
||||||
|
transient :current_user
|
||||||
|
|
||||||
|
before_create do |topic, transient|
|
||||||
|
if !transient[:current_user]
|
||||||
|
raise "new_reply_topic fabricator requires the `current_user` param"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
after_create do |topic, transient|
|
||||||
|
Fabricate(:post, topic: topic)
|
||||||
|
TopicUser.update_last_read(transient[:current_user], topic.id, 1, 1, 1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
|
@ -381,7 +381,7 @@ RSpec.describe ListController do
|
||||||
it "should display moderator group private messages for a moderator" do
|
it "should display moderator group private messages for a moderator" do
|
||||||
moderator = Fabricate(:moderator)
|
moderator = Fabricate(:moderator)
|
||||||
group = Group.find(Group::AUTO_GROUPS[:moderators])
|
group = Group.find(Group::AUTO_GROUPS[:moderators])
|
||||||
topic = Fabricate(:private_message_topic, allowed_groups: [group])
|
Fabricate(:private_message_topic, allowed_groups: [group])
|
||||||
|
|
||||||
sign_in(moderator)
|
sign_in(moderator)
|
||||||
|
|
||||||
|
@ -1518,56 +1518,30 @@ RSpec.describe ListController do
|
||||||
response.parsed_body["topic_list"]["topics"].map { |topics| topics["id"] }
|
response.parsed_body["topic_list"]["topics"].map { |topics| topics["id"] }
|
||||||
end
|
end
|
||||||
|
|
||||||
def make_topic_with_unread_replies(topic, user)
|
|
||||||
TopicUser.change(
|
|
||||||
user.id,
|
|
||||||
topic.id,
|
|
||||||
notification_level: TopicUser.notification_levels[:tracking],
|
|
||||||
)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
Fabricate(:post, topic: topic)
|
|
||||||
topic
|
|
||||||
end
|
|
||||||
|
|
||||||
def make_topic_read(topic, user)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
topic
|
|
||||||
end
|
|
||||||
|
|
||||||
context "when the user is part of the `experimental_new_new_view_groups` site setting group" do
|
context "when the user is part of the `experimental_new_new_view_groups` site setting group" do
|
||||||
fab!(:category)
|
fab!(:category)
|
||||||
fab!(:tag)
|
fab!(:tag)
|
||||||
|
|
||||||
fab!(:new_reply) { make_topic_with_unread_replies(Fabricate(:post).topic, user) }
|
fab!(:new_reply) { Fabricate(:new_reply_topic, current_user: user) }
|
||||||
fab!(:new_topic) { Fabricate(:post).topic }
|
fab!(:new_topic) { Fabricate(:post).topic }
|
||||||
fab!(:old_topic) { make_topic_read(Fabricate(:post).topic, user) }
|
fab!(:old_topic) { Fabricate(:read_topic, current_user: user) }
|
||||||
|
|
||||||
fab!(:new_reply_in_category) do
|
fab!(:new_reply_in_category) do
|
||||||
make_topic_with_unread_replies(
|
Fabricate(:new_reply_topic, category: category, current_user: user)
|
||||||
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic,
|
|
||||||
user,
|
|
||||||
)
|
|
||||||
end
|
end
|
||||||
fab!(:new_topic_in_category) do
|
fab!(:new_topic_in_category) do
|
||||||
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic
|
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic
|
||||||
end
|
end
|
||||||
fab!(:old_topic_in_category) do
|
fab!(:old_topic_in_category) do
|
||||||
make_topic_read(Fabricate(:post, topic: Fabricate(:topic, category: category)).topic, user)
|
Fabricate(:read_topic, category: category, current_user: user)
|
||||||
end
|
end
|
||||||
|
|
||||||
fab!(:new_reply_with_tag) do
|
fab!(:new_reply_with_tag) { Fabricate(:new_reply_topic, tags: [tag], current_user: user) }
|
||||||
make_topic_with_unread_replies(
|
|
||||||
Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic,
|
|
||||||
user,
|
|
||||||
)
|
|
||||||
end
|
|
||||||
fab!(:new_topic_with_tag) { Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic }
|
fab!(:new_topic_with_tag) { Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic }
|
||||||
fab!(:old_topic_with_tag) do
|
fab!(:old_topic_with_tag) { Fabricate(:read_topic, tags: [tag], current_user: user) }
|
||||||
make_topic_read(Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic, user)
|
|
||||||
end
|
|
||||||
|
|
||||||
before do
|
before do
|
||||||
make_topic_read(topic, user)
|
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
||||||
|
|
||||||
SiteSetting.experimental_new_new_view_groups = group.name
|
SiteSetting.experimental_new_new_view_groups = group.name
|
||||||
group.add(user)
|
group.add(user)
|
||||||
|
|
|
@ -6,65 +6,23 @@ describe "New topic list", type: :system do
|
||||||
fab!(:category)
|
fab!(:category)
|
||||||
fab!(:tag)
|
fab!(:tag)
|
||||||
|
|
||||||
fab!(:new_reply) do
|
fab!(:new_reply) { Fabricate(:new_reply_topic, current_user: user) }
|
||||||
Fabricate(:post).topic.tap do |topic|
|
|
||||||
TopicUser.change(
|
|
||||||
user.id,
|
|
||||||
topic.id,
|
|
||||||
notification_level: TopicUser.notification_levels[:tracking],
|
|
||||||
)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
Fabricate(:post, topic: topic)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
fab!(:new_topic) { Fabricate(:post).topic }
|
fab!(:new_topic) { Fabricate(:post).topic }
|
||||||
|
fab!(:old_topic) { Fabricate(:read_topic, current_user: user) }
|
||||||
fab!(:old_topic) do
|
|
||||||
Fabricate(:post).topic.tap { |topic| TopicUser.update_last_read(user, topic.id, 1, 1, 1) }
|
|
||||||
end
|
|
||||||
|
|
||||||
fab!(:new_reply_in_category) do
|
fab!(:new_reply_in_category) do
|
||||||
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic.tap do |topic|
|
Fabricate(:new_reply_topic, category: category, current_user: user)
|
||||||
TopicUser.change(
|
|
||||||
user.id,
|
|
||||||
topic.id,
|
|
||||||
notification_level: TopicUser.notification_levels[:tracking],
|
|
||||||
)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
Fabricate(:post, topic: topic)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
fab!(:new_topic_in_category) do
|
fab!(:new_topic_in_category) do
|
||||||
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic
|
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic
|
||||||
end
|
end
|
||||||
|
|
||||||
fab!(:old_topic_in_category) do
|
fab!(:old_topic_in_category) { Fabricate(:read_topic, category: category, current_user: user) }
|
||||||
Fabricate(:post, topic: Fabricate(:topic, category: category)).topic.tap do |topic|
|
fab!(:new_reply_with_tag) { Fabricate(:new_reply_topic, tags: [tag], current_user: user) }
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
fab!(:new_reply_with_tag) do
|
|
||||||
Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic.tap do |topic|
|
|
||||||
TopicUser.change(
|
|
||||||
user.id,
|
|
||||||
topic.id,
|
|
||||||
notification_level: TopicUser.notification_levels[:tracking],
|
|
||||||
)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
Fabricate(:post, topic: topic)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
fab!(:new_topic_with_tag) { Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic }
|
fab!(:new_topic_with_tag) { Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic }
|
||||||
|
fab!(:old_topic_with_tag) { Fabricate(:read_topic, tags: [tag], current_user: user) }
|
||||||
fab!(:old_topic_with_tag) do
|
|
||||||
Fabricate(:post, topic: Fabricate(:topic, tags: [tag])).topic.tap do |topic|
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
let(:topic_list) { PageObjects::Components::TopicList.new }
|
let(:topic_list) { PageObjects::Components::TopicList.new }
|
||||||
let(:tabs_toggle) { PageObjects::Components::NewTopicListToggle.new }
|
let(:tabs_toggle) { PageObjects::Components::NewTopicListToggle.new }
|
||||||
|
|
|
@ -60,17 +60,7 @@ describe "glimmer topic list", type: :system do
|
||||||
it "shows the list" do
|
it "shows the list" do
|
||||||
topic1 = Fabricate(:post).topic
|
topic1 = Fabricate(:post).topic
|
||||||
topic2 = Fabricate(:post).topic
|
topic2 = Fabricate(:post).topic
|
||||||
|
new_reply = Fabricate(:new_reply_topic, current_user: user, count: 3)
|
||||||
new_reply =
|
|
||||||
Fabricate(:post).topic.tap do |topic|
|
|
||||||
TopicUser.change(
|
|
||||||
user.id,
|
|
||||||
topic.id,
|
|
||||||
notification_level: TopicUser.notification_levels[:tracking],
|
|
||||||
)
|
|
||||||
TopicUser.update_last_read(user, topic.id, 1, 1, 1)
|
|
||||||
Fabricate.times(3, :post, topic: topic)
|
|
||||||
end
|
|
||||||
|
|
||||||
visit(topic1.relative_url)
|
visit(topic1.relative_url)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue