Update
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# retoor <retoor@molodetz.nl>
|
||||
|
||||
from tests.conftest import BASE_URL
|
||||
|
||||
ROCKET = "\U0001F680"
|
||||
FIRE = "\U0001F525"
|
||||
|
||||
|
||||
def _create_post(page, content, title):
|
||||
page.goto(f"{BASE_URL}/feed", wait_until="domcontentloaded")
|
||||
page.locator(".feed-fab").first.wait_for(state="visible", timeout=10000)
|
||||
page.locator(".feed-fab").first.click()
|
||||
page.check("input[value='random']")
|
||||
page.fill("#post-content", content)
|
||||
page.fill("#post-title", title)
|
||||
page.locator("#create-post-modal button.btn-primary:has-text('Post')").click()
|
||||
page.wait_for_url(f"{BASE_URL}/posts/*", wait_until="domcontentloaded")
|
||||
|
||||
|
||||
def test_title_emoji_rendered_server_side(alice):
|
||||
page, _ = alice
|
||||
_create_post(page, "Body content for the server-rendered title emoji test.", "Launch day :rocket:")
|
||||
title = page.locator(".post-detail-title").first
|
||||
title.wait_for(state="visible")
|
||||
text = title.text_content()
|
||||
assert ROCKET in text
|
||||
assert ":rocket:" not in text
|
||||
assert page.locator("dp-title").count() == 0
|
||||
|
||||
|
||||
def test_title_inline_markdown_rendered_server_side(alice):
|
||||
page, _ = alice
|
||||
_create_post(page, "Body content for the server-rendered title markdown test.", "Ship **v2** today")
|
||||
strong = page.locator(".post-detail-title strong").first
|
||||
strong.wait_for(state="visible")
|
||||
assert strong.text_content().strip() == "v2"
|
||||
|
||||
|
||||
def test_content_youtube_embedded_server_side(alice):
|
||||
page, _ = alice
|
||||
_create_post(page, "watch https://youtu.be/dQw4w9WgXcQ now", "Embed host post")
|
||||
iframe = page.locator(".post-detail-content .embed-youtube iframe").first
|
||||
iframe.wait_for(state="attached")
|
||||
assert "youtube.com/embed/dQw4w9WgXcQ" in (iframe.get_attribute("src") or "")
|
||||
|
||||
|
||||
def test_content_code_block_has_copy_button(alice):
|
||||
page, _ = alice
|
||||
_create_post(page, "snippet\n\n```python\nprint('hi')\n```", "Code copy host post")
|
||||
btn = page.locator(".post-detail-content pre.code-has-copy .code-copy-btn").first
|
||||
btn.wait_for(state="visible")
|
||||
assert btn.inner_text().strip().lower() == "copy"
|
||||
|
||||
|
||||
def test_feed_title_emoji_rendered_server_side(alice):
|
||||
page, _ = alice
|
||||
_create_post(page, "Body content for the feed server-rendered title test.", "Feed title :fire:")
|
||||
page.goto(f"{BASE_URL}/feed", wait_until="domcontentloaded")
|
||||
card_title = page.locator(".post-title").first
|
||||
card_title.wait_for(state="visible")
|
||||
assert FIRE in card_title.text_content()
|
||||
assert page.locator("dp-title").count() == 0
|
||||
+2
-2
@@ -871,12 +871,12 @@ def test_admin_has_admin_nav(alice):
|
||||
assert page.locator("a[href='/admin']").count() >= 1
|
||||
|
||||
|
||||
def test_admin_sees_role_badges(alice):
|
||||
def test_feed_shows_author_level(alice):
|
||||
page, _ = alice
|
||||
_seed_post_role_visibility()
|
||||
page.goto(f"{BASE_URL}/feed", wait_until="domcontentloaded")
|
||||
page.locator(".post-card").first.wait_for(state="visible")
|
||||
assert page.locator(".post-author-role").count() >= 1
|
||||
assert page.locator(".post-author-level").count() >= 1
|
||||
|
||||
|
||||
def test_feed_canonical_preserves_pagination(page, app_server):
|
||||
|
||||
@@ -177,7 +177,7 @@ def test_send_message_appears_in_thread(alice):
|
||||
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}')")
|
||||
page.locator(f".message-bubble:has-text('{msg}')").first.wait_for(state="visible")
|
||||
|
||||
|
||||
def test_messages_page_loads(alice):
|
||||
|
||||
+1
-1
@@ -328,7 +328,7 @@ def test_attachment_upload_ui(alice):
|
||||
file_input.set_input_files(
|
||||
{"name": "pic.png", "mimeType": "image/png", "buffer": buf.getvalue()}
|
||||
)
|
||||
page.locator(".comment-form dp-upload .dp-upload-chip").first.wait_for(
|
||||
page.locator(".comment-form dp-upload .dp-upload-count").first.wait_for(
|
||||
state="visible", timeout=15000
|
||||
)
|
||||
expect(
|
||||
|
||||
@@ -722,11 +722,10 @@ def test_profile_back_link(alice):
|
||||
page.wait_for_url(f"{BASE_URL}/feed", wait_until="domcontentloaded")
|
||||
|
||||
|
||||
def test_profile_role_display(alice):
|
||||
# alice_test is the first user -> Admin; only admins see role badges.
|
||||
def test_profile_level_display(alice):
|
||||
page, user = alice
|
||||
page.goto(f"{BASE_URL}/profile/{user['username']}", wait_until="domcontentloaded")
|
||||
assert page.locator(".profile-role").is_visible()
|
||||
assert page.locator(".profile-level-bar").is_visible()
|
||||
|
||||
|
||||
def test_profile_avatar(alice):
|
||||
|
||||
Reference in New Issue
Block a user