mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-26 06:38:28 +08:00
Adds a way to toggle upcoming changes on/off in the dev tools sidebar. This will only impact the UI/client, and will have no bearing on upcoming change gated logic on the server side. This is intended to be a way to quickly check the impact of an upcoming change on the UI without needing to be admin or impact other users. <img width="341" height="407" alt="image" src="https://github.com/user-attachments/assets/62f9e808-3d47-4b5a-a13a-29bd364f2c1d" /> https://github.com/user-attachments/assets/81034457-459c-4bf0-864f-583076fd3c6f
96 lines
2.5 KiB
Ruby
Vendored
96 lines
2.5 KiB
Ruby
Vendored
# frozen_string_literal: true
|
|
|
|
module PageObjects
|
|
module Components
|
|
module DevTools
|
|
class Toolbar < PageObjects::Components::Base
|
|
def enable
|
|
page.driver.with_playwright_page { |pw| pw.evaluate("window.enableDevTools()") }
|
|
has_toolbar? # Wait for toolbar to appear
|
|
self
|
|
end
|
|
|
|
def disable
|
|
find(".dev-tools-toolbar .disable-dev-tools").click
|
|
self
|
|
end
|
|
|
|
def toggle_plugin_outlets
|
|
find(".dev-tools-toolbar .toggle-plugin-outlets").click
|
|
self
|
|
end
|
|
|
|
def open_upcoming_changes_menu
|
|
find(".dev-tools-toolbar .toggle-upcoming-changes-menu").click
|
|
self
|
|
end
|
|
|
|
def close_upcoming_changes_menu
|
|
if has_upcoming_changes_menu?
|
|
find(".dev-tools-toolbar .toggle-upcoming-changes-menu").click
|
|
end
|
|
|
|
self
|
|
end
|
|
|
|
def has_upcoming_changes_menu?
|
|
page.has_css?(".upcoming-changes-debug-menu")
|
|
end
|
|
|
|
def has_no_upcoming_changes_menu?
|
|
page.has_no_css?(".upcoming-changes-debug-menu")
|
|
end
|
|
|
|
def toggle_upcoming_changes_menu_item(item_name)
|
|
find(".upcoming-changes-debug-menu label", text: item_name).click
|
|
self
|
|
end
|
|
|
|
def upcoming_change_site_setting_value(site_setting_name)
|
|
page.evaluate_script(
|
|
"Discourse.__container__.lookup('service:site-settings').#{site_setting_name}",
|
|
)
|
|
end
|
|
|
|
def open_blocks_menu
|
|
find(".dev-tools-toolbar .toggle-blocks").click
|
|
self
|
|
end
|
|
|
|
def close_blocks_menu
|
|
find(".dev-tools-toolbar .toggle-blocks").click if page.has_css?(".block-debug-menu")
|
|
self
|
|
end
|
|
|
|
def toggle_block_visual_overlay
|
|
open_blocks_menu
|
|
find(".block-debug-menu label", text: "Visual overlay").click
|
|
close_blocks_menu
|
|
self
|
|
end
|
|
|
|
def toggle_ghost_blocks
|
|
open_blocks_menu
|
|
find(".block-debug-menu label", text: "Ghost blocks").click
|
|
close_blocks_menu
|
|
self
|
|
end
|
|
|
|
def toggle_block_outlet_boundaries
|
|
open_blocks_menu
|
|
find(".block-debug-menu label", text: "Outlet boundaries").click
|
|
close_blocks_menu
|
|
self
|
|
end
|
|
|
|
def has_toolbar?
|
|
page.has_css?(".dev-tools-toolbar")
|
|
end
|
|
|
|
def has_no_toolbar?
|
|
page.has_no_css?(".dev-tools-toolbar")
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|