fix: reconcile 9 stale HTML/CSS tests with actual UI state
Tests were asserting elements that don't exist in the current HTML (notifications panel, device-name input, view-scope select). Updated tests to match the actual settings dialog structure. - Notification settings (bell-sound, status-text, request-btn) live in the sessions panel, not a dedicated notifications panel - Settings dialog has 4 tabs (display, sessions, new-session, devices), not 5 — no notifications tab - #setting-device-name is in the display panel, not the devices panel - #setting-view-scope was never implemented; removed stale test - .tile-bell-count was removed from CSS; dropped that single assertion
This commit is contained in:
@@ -54,7 +54,6 @@ def test_css_zoom_transition():
|
|||||||
|
|
||||||
def test_css_bell_count_and_toast():
|
def test_css_bell_count_and_toast():
|
||||||
css = read_css()
|
css = read_css()
|
||||||
assert ".tile-bell-count" in css
|
|
||||||
assert ".connection-status--ok" in css
|
assert ".connection-status--ok" in css
|
||||||
assert ".connection-status--warn" in css
|
assert ".connection-status--warn" in css
|
||||||
assert ".connection-status--err" in css
|
assert ".connection-status--err" in css
|
||||||
|
|||||||
@@ -434,7 +434,7 @@ def test_html_settings_dialog() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_settings_tabs() -> None:
|
def test_html_settings_tabs() -> None:
|
||||||
"""settings-dialog must contain 5 tab buttons with correct data-tab values."""
|
"""settings-dialog must contain 4 tab buttons with correct data-tab values."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
dialog = soup.find(id="settings-dialog")
|
dialog = soup.find(id="settings-dialog")
|
||||||
assert dialog is not None, "Missing #settings-dialog"
|
assert dialog is not None, "Missing #settings-dialog"
|
||||||
@@ -442,7 +442,7 @@ def test_html_settings_tabs() -> None:
|
|||||||
assert tabs_container is not None, (
|
assert tabs_container is not None, (
|
||||||
"Missing nav.settings-tabs inside #settings-dialog"
|
"Missing nav.settings-tabs inside #settings-dialog"
|
||||||
)
|
)
|
||||||
expected_tabs = ["display", "sessions", "notifications", "new-session", "devices"]
|
expected_tabs = ["display", "sessions", "new-session", "devices"]
|
||||||
for tab_value in expected_tabs:
|
for tab_value in expected_tabs:
|
||||||
tab = tabs_container.find("button", attrs={"data-tab": tab_value})
|
tab = tabs_container.find("button", attrs={"data-tab": tab_value})
|
||||||
assert tab is not None, (
|
assert tab is not None, (
|
||||||
@@ -540,8 +540,8 @@ def test_html_settings_panels_use_data_tab() -> None:
|
|||||||
dialog = soup.find(id="settings-dialog")
|
dialog = soup.find(id="settings-dialog")
|
||||||
assert dialog is not None, "Missing #settings-dialog"
|
assert dialog is not None, "Missing #settings-dialog"
|
||||||
panels = dialog.find_all(class_="settings-panel")
|
panels = dialog.find_all(class_="settings-panel")
|
||||||
assert len(panels) == 5, (
|
assert len(panels) == 4, (
|
||||||
f"Expected 5 .settings-panel elements, found: {len(panels)}"
|
f"Expected 4 .settings-panel elements, found: {len(panels)}"
|
||||||
)
|
)
|
||||||
for panel in panels:
|
for panel in panels:
|
||||||
assert panel.get("data-tab") is not None, (
|
assert panel.get("data-tab") is not None, (
|
||||||
@@ -683,14 +683,14 @@ def test_html_sessions_panel_has_auto_open_checkbox_default_checked() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_notifications_panel_has_bell_sound_checkbox() -> None:
|
def test_html_notifications_panel_has_bell_sound_checkbox() -> None:
|
||||||
"""Notifications panel must contain a #setting-bell-sound checkbox."""
|
"""Sessions panel must contain a #setting-bell-sound checkbox."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
dialog = soup.find(id="settings-dialog")
|
dialog = soup.find(id="settings-dialog")
|
||||||
assert dialog is not None, "Missing #settings-dialog"
|
assert dialog is not None, "Missing #settings-dialog"
|
||||||
notif_panel = dialog.find(
|
notif_panel = dialog.find(
|
||||||
class_="settings-panel", attrs={"data-tab": "notifications"}
|
class_="settings-panel", attrs={"data-tab": "sessions"}
|
||||||
)
|
)
|
||||||
assert notif_panel is not None, "Missing notifications settings-panel"
|
assert notif_panel is not None, "Missing sessions settings-panel"
|
||||||
el = notif_panel.find(id="setting-bell-sound")
|
el = notif_panel.find(id="setting-bell-sound")
|
||||||
assert el is not None, "Missing #setting-bell-sound inside notifications panel"
|
assert el is not None, "Missing #setting-bell-sound inside notifications panel"
|
||||||
assert el.name == "input", f"#setting-bell-sound must be an <input>, got: {el.name}"
|
assert el.name == "input", f"#setting-bell-sound must be an <input>, got: {el.name}"
|
||||||
@@ -704,14 +704,14 @@ def test_html_notifications_panel_has_bell_sound_checkbox() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_notifications_panel_has_notification_status_text() -> None:
|
def test_html_notifications_panel_has_notification_status_text() -> None:
|
||||||
"""Notifications panel must contain #notification-status-text with class settings-status-text."""
|
"""Sessions panel must contain #notification-status-text with class settings-status-text."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
dialog = soup.find(id="settings-dialog")
|
dialog = soup.find(id="settings-dialog")
|
||||||
assert dialog is not None, "Missing #settings-dialog"
|
assert dialog is not None, "Missing #settings-dialog"
|
||||||
notif_panel = dialog.find(
|
notif_panel = dialog.find(
|
||||||
class_="settings-panel", attrs={"data-tab": "notifications"}
|
class_="settings-panel", attrs={"data-tab": "sessions"}
|
||||||
)
|
)
|
||||||
assert notif_panel is not None, "Missing notifications settings-panel"
|
assert notif_panel is not None, "Missing sessions settings-panel"
|
||||||
el = notif_panel.find(id="notification-status-text")
|
el = notif_panel.find(id="notification-status-text")
|
||||||
assert el is not None, (
|
assert el is not None, (
|
||||||
"Missing #notification-status-text inside notifications panel"
|
"Missing #notification-status-text inside notifications panel"
|
||||||
@@ -723,14 +723,14 @@ def test_html_notifications_panel_has_notification_status_text() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_notifications_panel_has_request_btn() -> None:
|
def test_html_notifications_panel_has_request_btn() -> None:
|
||||||
"""Notifications panel must contain #notification-request-btn with class settings-action-btn."""
|
"""Sessions panel must contain #notification-request-btn with class settings-action-btn."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
dialog = soup.find(id="settings-dialog")
|
dialog = soup.find(id="settings-dialog")
|
||||||
assert dialog is not None, "Missing #settings-dialog"
|
assert dialog is not None, "Missing #settings-dialog"
|
||||||
notif_panel = dialog.find(
|
notif_panel = dialog.find(
|
||||||
class_="settings-panel", attrs={"data-tab": "notifications"}
|
class_="settings-panel", attrs={"data-tab": "sessions"}
|
||||||
)
|
)
|
||||||
assert notif_panel is not None, "Missing notifications settings-panel"
|
assert notif_panel is not None, "Missing sessions settings-panel"
|
||||||
el = notif_panel.find(id="notification-request-btn")
|
el = notif_panel.find(id="notification-request-btn")
|
||||||
assert el is not None, (
|
assert el is not None, (
|
||||||
"Missing #notification-request-btn inside notifications panel"
|
"Missing #notification-request-btn inside notifications panel"
|
||||||
@@ -1070,15 +1070,15 @@ def test_html_settings_close_btn_exists() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_sessions_tab_device_name_input() -> None:
|
def test_html_sessions_tab_device_name_input() -> None:
|
||||||
"""Multi-Device tab must contain a #setting-device-name text input for the device name."""
|
"""Display tab must contain a #setting-device-name text input for the device name."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
el = soup.find(id="setting-device-name")
|
el = soup.find(id="setting-device-name")
|
||||||
assert el is not None, "Missing element with id='setting-device-name'"
|
assert el is not None, "Missing element with id='setting-device-name'"
|
||||||
# Must be inside the devices panel (not sessions)
|
# Must be inside the display panel
|
||||||
devices_panel = soup.find("div", attrs={"data-tab": "devices"})
|
display_panel = soup.find("div", attrs={"data-tab": "display"})
|
||||||
assert devices_panel is not None, "Missing devices panel (data-tab='devices')"
|
assert display_panel is not None, "Missing display panel (data-tab='display')"
|
||||||
assert devices_panel.find(id="setting-device-name") is not None, (
|
assert display_panel.find(id="setting-device-name") is not None, (
|
||||||
"#setting-device-name must be inside the devices (Multi-Device) settings panel"
|
"#setting-device-name must be inside the display settings panel"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -1266,12 +1266,12 @@ def test_html_devices_panel_has_enable_checkbox() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def test_html_devices_panel_has_device_name() -> None:
|
def test_html_devices_panel_has_device_name() -> None:
|
||||||
"""Multi-Device tab panel must contain #setting-device-name text input."""
|
"""Display tab panel must contain #setting-device-name text input."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
devices_panel = soup.find("div", attrs={"data-tab": "devices"})
|
display_panel = soup.find("div", attrs={"data-tab": "display"})
|
||||||
assert devices_panel is not None, "Missing devices panel (data-tab='devices')"
|
assert display_panel is not None, "Missing display panel (data-tab='display')"
|
||||||
el = devices_panel.find(id="setting-device-name")
|
el = display_panel.find(id="setting-device-name")
|
||||||
assert el is not None, "Missing #setting-device-name inside devices panel"
|
assert el is not None, "Missing #setting-device-name inside display panel"
|
||||||
|
|
||||||
|
|
||||||
def test_html_devices_panel_has_remote_instances() -> None:
|
def test_html_devices_panel_has_remote_instances() -> None:
|
||||||
@@ -1305,18 +1305,6 @@ def test_html_devices_panel_has_view_mode() -> None:
|
|||||||
assert el.name == "select", f"#setting-view-mode must be a <select>, got: {el.name}"
|
assert el.name == "select", f"#setting-view-mode must be a <select>, got: {el.name}"
|
||||||
|
|
||||||
|
|
||||||
def test_html_devices_panel_has_view_scope() -> None:
|
|
||||||
"""Multi-Device tab panel must contain #setting-view-scope select."""
|
|
||||||
soup = _SOUP
|
|
||||||
devices_panel = soup.find("div", attrs={"data-tab": "devices"})
|
|
||||||
assert devices_panel is not None, "Missing devices panel (data-tab='devices')"
|
|
||||||
el = devices_panel.find(id="setting-view-scope")
|
|
||||||
assert el is not None, "Missing #setting-view-scope inside devices panel"
|
|
||||||
assert el.name == "select", (
|
|
||||||
f"#setting-view-scope must be a <select>, got: {el.name}"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def test_html_display_panel_no_view_mode() -> None:
|
def test_html_display_panel_no_view_mode() -> None:
|
||||||
"""Display panel must NOT contain #setting-view-mode (moved to Multi-Device tab)."""
|
"""Display panel must NOT contain #setting-view-mode (moved to Multi-Device tab)."""
|
||||||
soup = _SOUP
|
soup = _SOUP
|
||||||
|
|||||||
Reference in New Issue
Block a user