fix ui composer
This commit is contained in:
1 parent
a26ae28189
commit
33930e972c
8 files changed
+73
-16
No files matched your search
@@ -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()
|
||||
|
||||
|
||||
@@ -198,11 +198,12 @@ def test_dispatch_report_presents_delivery_and_engagement_professionally(live_se
|
||||
conversation.expect_latest_message_above_composer()
|
||||
launch.click()
|
||||
close_composer = page.get_by_role("button", name="بستن", exact=True)
|
||||
expect(close_composer).to_be_visible()
|
||||
close_box = close_composer.bounding_box()
|
||||
assert close_box is not None
|
||||
assert close_box["x"] >= 0 and close_box["x"] + close_box["width"] <= 390
|
||||
assert close_box["y"] >= 0 and close_box["y"] + close_box["height"] <= 844
|
||||
expect(close_composer).to_be_hidden()
|
||||
expect(page.locator('form[data-ticket-composer] textarea')).to_be_focused()
|
||||
page.set_viewport_size({"width":390,"height":430})
|
||||
expect(page.locator("[data-composer-shell]")).to_have_attribute("data-keyboard-open","true")
|
||||
page.set_viewport_size({"width":390,"height":844})
|
||||
expect(page.locator("[data-composer-shell].is-collapsed")).to_be_visible()
|
||||
conversation.expect_latest_message_above_composer()
|
||||
dismiss_context.click()
|
||||
expect(page.locator(".ticket-dispatch-context")).to_have_count(0)
|
||||
Reference in new issue
Block a user