65 lines
2.2 KiB
Ruby
65 lines
2.2 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Horizon theme | High level", type: :system do
|
|
let!(:theme) { upload_theme }
|
|
fab!(:current_user) { Fabricate(:user) }
|
|
fab!(:tag_1) { Fabricate(:tag, name: "wow-cool") }
|
|
fab!(:tag_2) { Fabricate(:tag, name: "another-tag") }
|
|
fab!(:category)
|
|
fab!(:topic_1) { Fabricate(:topic_with_op, category: category, tags: [tag_1, tag_2]) }
|
|
let(:topic_list) { PageObjects::Components::TopicList.new }
|
|
let(:topic_page) { PageObjects::Pages::Topic.new }
|
|
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
|
|
|
|
def run_all_high_level_tests
|
|
expect(page).to have_css(".experimental-screen")
|
|
|
|
expect(sidebar).to have_categories_section
|
|
expect(sidebar).to have_section_link(category.name)
|
|
|
|
expect(topic_list).to have_topic(topic_1)
|
|
|
|
# Ensure the topic list columns are in the correct order via 'topic-list-columns' valueTransformer
|
|
#
|
|
# NOTE(martin): Maybe there is a better way to do this in a qunit test instead.
|
|
topic_item = find(topic_list.topic_list_item_class(topic_1))
|
|
expect(topic_item.all("td").map { |el| el["class"] }).to eq(
|
|
[
|
|
"main-link clearfix topic-list-data",
|
|
"activity num topic-list-data age",
|
|
"topic-author-data",
|
|
"topic-category-status-data",
|
|
"topic-author-avatar-data",
|
|
"topic-likes-replies-data",
|
|
],
|
|
)
|
|
|
|
# Can see a topic in the list and navigate to it successfully
|
|
topic_list.visit_topic(topic_1)
|
|
expect(topic_page).to have_topic_title(topic_1.title)
|
|
|
|
# Can change site colors from the sidebar palette, which are remembered across page reloads
|
|
palette_menu =
|
|
PageObjects::Components::DMenu.new(find(".sidebar-footer-actions .user-color-palette"))
|
|
palette_menu.expand
|
|
find(".color-palette-menu__content .color-palette-menu__item[data-color='marigold']").click
|
|
expect(page).to have_css(".custom-color-marigold")
|
|
page.refresh
|
|
expect(page).to have_css(".custom-color-marigold")
|
|
end
|
|
|
|
it "works for anon" do
|
|
visit "/"
|
|
run_all_high_level_tests
|
|
end
|
|
|
|
context "for signed in users" do
|
|
before { sign_in(current_user) }
|
|
|
|
it "works" do
|
|
visit "/"
|
|
run_all_high_level_tests
|
|
end
|
|
end
|
|
end
|