75 lines
2.4 KiB
Python
Raw Normal View History

2026-05-23 05:44:04 +02:00
import time
2026-05-10 09:08:12 +02:00
from tests.conftest import BASE_URL
2026-05-23 05:44:04 +02:00
from devplacepy.database import get_table
def test_send_message_appears_in_thread(alice):
page, _ = alice
bob = get_table("users").find_one(username="bob_test")
2026-06-09 18:48:08 +02:00
page.goto(
f"{BASE_URL}/messages?with_uid={bob['uid']}", wait_until="domcontentloaded"
)
2026-05-23 05:44:04 +02:00
msg = f"Hello bob {int(time.time() * 1000)}"
page.fill("input[name='content']", msg)
page.locator(".messages-send-btn").click()
page.wait_for_url("**/messages**", wait_until="domcontentloaded")
assert page.is_visible(f".message-bubble:has-text('{msg}')")
2026-05-10 09:08:12 +02:00
def test_messages_page_loads(alice):
page, _ = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-10 09:08:12 +02:00
assert page.is_visible(".messages-layout")
def test_messages_search_input(alice):
page, _ = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-10 09:08:12 +02:00
search = page.locator("#message-search")
assert search.is_visible()
assert search.get_attribute("placeholder") == "Search conversations..."
def test_messages_empty_state(alice):
page, _ = alice
2026-05-23 03:21:55 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-06-09 18:48:08 +02:00
assert page.is_visible(".messages-layout") or page.is_visible(
"text=No conversations yet"
)
2026-05-10 09:08:12 +02:00
def test_messages_search_for_bob(alice):
page, _ = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-10 09:08:12 +02:00
page.fill("#message-search", "bob_test")
2026-06-10 05:22:44 +02:00
result = page.locator(".search-dropdown-item:has-text('bob_test')")
result.wait_for(state="visible", timeout=5000)
assert result.is_visible()
2026-05-11 03:14:43 +02:00
def test_messages_header_visible(alice):
page, _ = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-11 03:14:43 +02:00
assert page.is_visible("text=Home")
assert page.is_visible("text=Projects")
def test_messages_bell_icon(alice):
page, _ = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-23 10:24:54 +02:00
bell = page.locator(".topnav-icon[href='/notifications']")
2026-05-11 03:14:43 +02:00
assert bell.is_visible()
def test_messages_topnav_user(alice):
page, user = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-11 03:14:43 +02:00
assert page.is_visible(f"text={user['username']}")
def test_messages_avatar_on_page(alice):
page, user = alice
2026-06-10 05:22:44 +02:00
page.goto(f"{BASE_URL}/messages", wait_until="domcontentloaded")
2026-05-11 03:14:43 +02:00
avatar = page.locator("img.avatar-img").first
assert avatar.is_visible()