discourse/spec/system/viewing_category_spec.rb
Daniel Waterworth 6e161d3e75
DEV: Allow fab! without block ()
The most common thing that we do with fab! is:

    fab!(:thing) { Fabricate(:thing) }

This commit adds a shorthand for this which is just simply:

    fab!(:thing)

i.e. If you omit the block, then, by default, you'll get a `Fabricate`d object using the fabricator of the same name.
2023-11-09 16:47:59 -06:00

56 lines
1.7 KiB
Ruby

# frozen_string_literal: true
RSpec.describe "Viewing a category", type: :system do
fab!(:category)
fab!(:user)
let(:category_page) { PageObjects::Pages::Category.new }
let(:topic_list) { PageObjects::Components::TopicList.new }
describe "when a new child category is created with a new category topic" do
fab!(:child_category) { Fabricate(:category, parent_category: category) }
fab!(:child_category_topic) do
Fabricate(:topic, category: child_category).tap do |topic|
child_category.update!(topic: topic)
end
end
it "should show a new count on the parent and child category when 'show_category_definitions_in_topic_lists' is true" do
SiteSetting.show_category_definitions_in_topic_lists = true
sign_in(user)
category_page.visit(category)
category_page.click_new
expect(topic_list).to have_topics(count: 1)
expect(topic_list).to have_topic(child_category_topic)
category_page.visit(child_category)
category_page.click_new
expect(topic_list).to have_topics(count: 1)
expect(topic_list).to have_topic(child_category_topic)
end
it "should only show a new count on the child category when 'show_category_definitions_in_topic_lists' site setting is false" do
SiteSetting.show_category_definitions_in_topic_lists = false
sign_in(user)
category_page.visit(category)
expect(category_page).to have_no_new_topics
category_page.visit(child_category)
expect(category_page).to have_new_topics
category_page.click_new
expect(topic_list).to have_topics(count: 1)
expect(topic_list).to have_topic(child_category_topic)
end
end
end