fix keyboard ui
This commit is contained in:
1 parent
83f4d7c728
commit
a26ae28189
5 files changed
+54
-8
No files matched your search
@@ -36,6 +36,23 @@ def assert_workspace_fits_visual_viewport(page):
|
||||
assert metrics["pageWidth"] <= metrics["viewportWidth"] + 1
|
||||
|
||||
|
||||
def assert_reply_input_is_visible(page):
|
||||
metrics = page.evaluate(
|
||||
"""() => {
|
||||
const input = document.querySelector('form[data-ticket-composer] textarea');
|
||||
const composer = document.querySelector('[data-composer-shell]');
|
||||
const inputBox = input.getBoundingClientRect();
|
||||
const composerBox = composer.getBoundingClientRect();
|
||||
const viewportTop = window.visualViewport?.offsetTop || 0;
|
||||
const viewportBottom = viewportTop + (window.visualViewport?.height || window.innerHeight);
|
||||
const visibleTop = Math.max(inputBox.top, composerBox.top, viewportTop);
|
||||
const visibleBottom = Math.min(inputBox.bottom, composerBox.bottom, viewportBottom);
|
||||
return {visibleHeight: Math.max(0, visibleBottom - visibleTop), inputHeight: inputBox.height};
|
||||
}"""
|
||||
)
|
||||
assert metrics["visibleHeight"] >= min(64, metrics["inputHeight"] * 0.6)
|
||||
|
||||
|
||||
def test_magic_link_mobile_viewport_keeps_composer_messages_and_credit_visible(live_server, browser_page):
|
||||
branding = SiteBranding.load()
|
||||
branding.developer_credit_text = "امضای مقدس توسعهدهنده E2E"
|
||||
@@ -61,16 +78,19 @@ def test_magic_link_mobile_viewport_keeps_composer_messages_and_credit_visible(l
|
||||
conversation.expect_latest_message_above_composer()
|
||||
|
||||
conversation.open_composer()
|
||||
page.set_viewport_size({"width": 390, "height": 620})
|
||||
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_reply_input_is_visible(page)
|
||||
expect(credit).to_be_visible()
|
||||
assert_workspace_fits_visual_viewport(page)
|
||||
conversation.expect_latest_message_above_composer()
|
||||
|
||||
page.locator("[data-composer-close]").click()
|
||||
expect(page.locator("[data-composer-shell].is-collapsed")).to_be_visible()
|
||||
expect(credit).to_be_visible()
|
||||
assert_workspace_fits_visual_viewport(page)
|
||||
conversation.expect_latest_message_above_composer()
|
||||
|
||||
|
||||
def test_staff_ticket_mobile_viewport_survives_open_close_and_rotation(live_server, browser_page):
|
||||
@@ -95,9 +115,12 @@ def test_staff_ticket_mobile_viewport_survives_open_close_and_rotation(live_serv
|
||||
conversation.open_composer()
|
||||
page.set_viewport_size({"width": 844, "height": 390})
|
||||
assert_workspace_fits_visual_viewport(page)
|
||||
conversation.expect_latest_message_above_composer()
|
||||
expect(page.locator("[data-composer-shell]")).to_have_attribute("data-keyboard-open", "true")
|
||||
page.locator('form[data-ticket-composer] textarea').fill("پاسخ کارشناس هنگام باز بودن کیبورد")
|
||||
assert_reply_input_is_visible(page)
|
||||
expect(page.locator("[data-composer-close]")).to_be_visible()
|
||||
|
||||
page.locator("[data-composer-close]").click()
|
||||
expect(page.locator("[data-composer-shell].is-collapsed")).to_be_visible()
|
||||
assert_workspace_fits_visual_viewport(page)
|
||||
conversation.expect_latest_message_above_composer()
|
||||
Reference in new issue
Block a user