fix ui composer

This commit is contained in:
javad committed 2026-09-17 11:08:16 +03:30
1 parent a26ae28189
commit 33930e972c
8 files changed
+73 -16

No files matched your search

+35 -3
View File
@@ -53,6 +53,35 @@ def assert_reply_input_is_visible(page):
assert metrics["visibleHeight"] >= min(64, metrics["inputHeight"] * 0.6)
def assert_compact_composer_controls(page):
metrics = page.evaluate(
"""() => {
const input = document.querySelector('form[data-ticket-composer] textarea').getBoundingClientRect();
const jump = document.querySelector('[data-scroll-to-submit]').getBoundingClientRect();
const pickers = [...document.querySelectorAll('.media-picker-button')].map(node => node.getBoundingClientRect());
return {
inputBottom: input.bottom,
jumpBottom: jump.bottom,
pickerTopDifference: Math.abs(pickers[0].top - pickers[1].top),
pickersOverlap: !(pickers[0].right <= pickers[1].left || pickers[1].right <= pickers[0].left),
};
}"""
)
assert abs(metrics["inputBottom"] - metrics["jumpBottom"]) <= 8
assert metrics["pickerTopDifference"] <= 2
assert not metrics["pickersOverlap"]
def assert_textarea_grows_with_content(page):
reply = page.locator('form[data-ticket-composer] textarea')
reply.fill("پاسخ کوتاه")
compact_height = reply.bounding_box()["height"]
reply.fill("خط اول\nخط دوم\nخط سوم\nخط چهارم\nخط پنجم\nخط ششم\nخط هفتم")
grown_height = reply.bounding_box()["height"]
assert compact_height <= 52
assert compact_height < grown_height <= 145
def test_magic_link_mobile_viewport_keeps_composer_messages_and_credit_visible(live_server, browser_page):
branding = SiteBranding.load()
branding.developer_credit_text = "امضای مقدس توسعه‌دهنده E2E"
@@ -78,15 +107,17 @@ def test_magic_link_mobile_viewport_keeps_composer_messages_and_credit_visible(l
conversation.expect_latest_message_above_composer()
conversation.open_composer()
assert_compact_composer_controls(page)
page.set_viewport_size({"width": 390, "height": 430})
expect(page.locator('form[data-ticket-composer] textarea')).to_be_focused()
expect(page.locator("[data-composer-shell]")).to_have_attribute("data-keyboard-open", "true")
page.locator('form[data-ticket-composer] textarea').fill("متن پاسخ باید هنگام تایپ دیده شود")
assert_textarea_grows_with_content(page)
assert_reply_input_is_visible(page)
expect(page.locator("[data-composer-close]")).to_be_hidden()
expect(credit).to_be_visible()
assert_workspace_fits_visual_viewport(page)
page.locator("[data-composer-close]").click()
page.set_viewport_size({"width": 390, "height": 844})
expect(page.locator("[data-composer-shell].is-collapsed")).to_be_visible()
expect(credit).to_be_visible()
assert_workspace_fits_visual_viewport(page)
@@ -116,7 +147,8 @@ def test_staff_ticket_mobile_viewport_survives_open_close_and_rotation(live_serv
page.set_viewport_size({"width": 844, "height": 390})
assert_workspace_fits_visual_viewport(page)
expect(page.locator("[data-composer-shell]")).to_have_attribute("data-keyboard-open", "true")
page.locator('form[data-ticket-composer] textarea').fill("پاسخ کارشناس هنگام باز بودن کیبورد")
assert_compact_composer_controls(page)
assert_textarea_grows_with_content(page)
assert_reply_input_is_visible(page)
expect(page.locator("[data-composer-close]")).to_be_visible()