mirror of
https://github.com/discourse/discourse.git
synced 2024-12-25 18:06:18 +08:00
fad0d2ec62
This PR adds a small visual change to the new feature item on the `/admin/whats-new` page. When features are marked with an experimental site setting, they should show an indication on the feature item that it is "Experimental"
171 lines
5.7 KiB
Ruby
171 lines
5.7 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
describe "Admin New Features Page", type: :system do
|
|
let(:new_features_page) { PageObjects::Pages::AdminNewFeatures.new }
|
|
let(:sidebar) { PageObjects::Components::NavigationMenu::Sidebar.new }
|
|
fab!(:admin)
|
|
|
|
before do
|
|
SiteSetting.navigation_menu = "sidebar"
|
|
SiteSetting.admin_sidebar_enabled_groups = [
|
|
Group::AUTO_GROUPS[:admins],
|
|
Group::AUTO_GROUPS[:moderators],
|
|
]
|
|
sign_in(admin)
|
|
end
|
|
|
|
it "displays new features with screenshot taking precedence over emoji" do
|
|
DiscourseUpdates.stubs(:new_features).returns(
|
|
[
|
|
{
|
|
"id" => 7,
|
|
"user_id" => 1,
|
|
"emoji" => "😍",
|
|
"title" => "New feature",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "3.3.0.beta4",
|
|
"created_at" => "2023-11-10T02:52:41.462Z",
|
|
"updated_at" => "2023-11-10T04:28:47.020Z",
|
|
"screenshot_url" =>
|
|
"/uploads/default/original/1X/bab053dc94dc4e0d357b0e777e3357bb1ac99e12.jpeg",
|
|
},
|
|
{
|
|
"id" => 8,
|
|
"user_id" => 1,
|
|
"emoji" => "🐼",
|
|
"title" => "New feature from previous release",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "3.3.0.beta3",
|
|
"created_at" => "2023-09-10T02:52:41.462Z",
|
|
"updated_at" => "2023-09-10T04:28:47.020Z",
|
|
"released_at" => "2023-08-10T04:28:47.020Z",
|
|
"screenshot_url" =>
|
|
"/uploads/default/original/1X/bab054dc94dc4e0d357b0e777e3357bb1ac99e13.jpeg",
|
|
},
|
|
],
|
|
)
|
|
|
|
new_features_page.visit
|
|
|
|
within find(".admin-config-area-card:first-child") do
|
|
expect(new_features_page).to have_screenshot
|
|
expect(new_features_page).to have_learn_more_link
|
|
expect(new_features_page).to have_no_emoji
|
|
expect(new_features_page).to have_date("November 2023")
|
|
expect(new_features_page).to have_version("3.3.0.beta4")
|
|
end
|
|
|
|
within find(".admin-config-area-card:last-child") do
|
|
expect(new_features_page).to have_screenshot
|
|
expect(new_features_page).to have_learn_more_link
|
|
expect(new_features_page).to have_no_emoji
|
|
expect(new_features_page).to have_date("August 2023")
|
|
expect(new_features_page).to have_version("3.3.0.beta3")
|
|
end
|
|
end
|
|
|
|
it "displays new features with emoji when no screenshot" do
|
|
DiscourseUpdates.stubs(:new_features).returns(
|
|
[
|
|
{
|
|
"id" => 7,
|
|
"user_id" => 1,
|
|
"emoji" => "😍",
|
|
"title" => "New feature",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "",
|
|
"created_at" => "2023-11-10T02:52:41.462Z",
|
|
"updated_at" => "2023-11-10T04:28:47.020Z",
|
|
},
|
|
],
|
|
)
|
|
new_features_page.visit
|
|
expect(new_features_page).to have_emoji
|
|
expect(new_features_page).to have_no_screenshot
|
|
end
|
|
|
|
it "displays experimental feature toggle" do
|
|
DiscourseUpdates.stubs(:new_features).returns(
|
|
[
|
|
{
|
|
"id" => 7,
|
|
"user_id" => 1,
|
|
"emoji" => "😍",
|
|
"title" => "New feature",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "",
|
|
"created_at" => "2023-11-10T02:52:41.462Z",
|
|
"updated_at" => "2023-11-10T04:28:47.020Z",
|
|
"experiment_setting" => "experimental_form_templates",
|
|
},
|
|
],
|
|
)
|
|
new_features_page.visit
|
|
expect(new_features_page).to have_toggle_experiment_button
|
|
end
|
|
|
|
it "displays experimental text next to feature title when feature is experimental" do
|
|
DiscourseUpdates.stubs(:new_features).returns(
|
|
[
|
|
{
|
|
"id" => 7,
|
|
"user_id" => 1,
|
|
"emoji" => "😍",
|
|
"title" => "New feature",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "",
|
|
"created_at" => "2023-11-10T02:52:41.462Z",
|
|
"updated_at" => "2023-11-10T04:28:47.020Z",
|
|
"experiment_setting" => "experimental_form_templates",
|
|
},
|
|
],
|
|
)
|
|
new_features_page.visit
|
|
expect(new_features_page).to have_experimental_text
|
|
end
|
|
|
|
it "does not display experimental text next to feature title when feature is not experimental" do
|
|
DiscourseUpdates.stubs(:new_features).returns(
|
|
[
|
|
{
|
|
"id" => 7,
|
|
"user_id" => 1,
|
|
"emoji" => "😍",
|
|
"title" => "New feature",
|
|
"description" => "New feature description",
|
|
"link" => "https://meta.discourse.org",
|
|
"tier" => [],
|
|
"discourse_version" => "",
|
|
"created_at" => "2023-11-10T02:52:41.462Z",
|
|
"updated_at" => "2023-11-10T04:28:47.020Z",
|
|
},
|
|
],
|
|
)
|
|
new_features_page.visit
|
|
expect(new_features_page).to have_no_experimental_text
|
|
end
|
|
|
|
it "displays a new feature indicator on the sidebar and clears it when navigating to what's new" do
|
|
DiscourseUpdates.stubs(:has_unseen_features?).returns(true)
|
|
visit "/admin"
|
|
sidebar.toggle_all_sections
|
|
expect(sidebar.find_section_link("admin_whats_new")).to have_css(
|
|
".sidebar-section-link-suffix.admin-sidebar-nav-link__dot",
|
|
)
|
|
sidebar.find_section_link("admin_whats_new").click
|
|
expect(sidebar.find_section_link("admin_whats_new")).to have_no_css(
|
|
".sidebar-section-link-suffix.admin-sidebar-nav-link__dot",
|
|
)
|
|
end
|
|
end
|