main
py 60 lines 2.21 KB
Raw
1 from pathlib import Path
2
3
4 PROJECT_ROOT = Path(__file__).resolve().parents[1]
5
6
7 def test_running_chat_bubble_morphs_and_rotates_on_a_1500ms_cycle() -> None:
8 chats_list = (
9 PROJECT_ROOT / "webui/components/sidebar/chats/chats-list.html"
10 ).read_text(encoding="utf-8")
11
12 assert ".chats-list-container .project-color-ball.heartbeat" in chats_list
13 assert (
14 "animation: chat-working-bubble 1500ms ease-in-out infinite;" in chats_list
15 )
16 assert "@keyframes chat-working-bubble" in chats_list
17 assert "border-radius: 0;" in chats_list
18 assert "transform: rotate(45deg) scale(0.9);" in chats_list
19 assert "transform: rotate(405deg) scale(0.9);" in chats_list
20 assert "transform: rotate(405deg) scale(1);" in chats_list
21
22
23 def test_chat_and_task_rows_reclaim_left_space_without_shifting_headers() -> None:
24 chats_list = (
25 PROJECT_ROOT / "webui/components/sidebar/chats/chats-list.html"
26 ).read_text(encoding="utf-8")
27 left_sidebar = (
28 PROJECT_ROOT / "webui/components/sidebar/left-sidebar.html"
29 ).read_text(encoding="utf-8")
30
31 assert "margin-inline-start: calc(0px - var(--spacing-md));" not in chats_list
32 assert left_sidebar.count(
33 "margin-inline-start: calc(0px - var(--spacing-sm));"
34 ) == 2
35 assert left_sidebar.count("width: calc(100% + var(--spacing-sm));") == 2
36 assert (
37 "#chats-section .section-header-row,\n"
38 " #tasks-section .section-header {\n"
39 " margin-inline-start: var(--spacing-sm);"
40 ) in left_sidebar
41 assert "flex: 1 1 auto;" in chats_list
42 assert "min-width: 0;" in chats_list
43 assert "padding: 8px 6px;" in chats_list
44
45
46 def test_only_visible_chat_actions_take_width() -> None:
47 chats_list = (
48 PROJECT_ROOT / "webui/components/sidebar/chats/chats-list.html"
49 ).read_text(encoding="utf-8")
50
51 assert ".device-pointer .chat-container .chat-list-action-btn" in chats_list
52 assert (
53 ".device-touch .chat-container:not(.chat-selected) .chat-list-action-btn"
54 in chats_list
55 )
56 assert ".device-pointer .chat-container:hover .chat-list-action-btn" in chats_list
57 assert (
58 ".device-touch .chat-container.chat-selected .chat-list-action-btn"
59 in chats_list
60 )