Source code

Revision control

Copy as Markdown

Other Tools

import pytest
TABLE_HEADER_CSS = ".w3-table-container table.sortable thead th:first-of-type"
TABLE_CELL_CSS = ".w3-table-container table.sortable tbody td:first-of-type"
async def check_header_is_positioned_correctly(client):
await client.navigate(URL, wait="none")
header = client.await_css(TABLE_HEADER_CSS, is_displayed=True)
cell = client.await_css(TABLE_CELL_CSS, is_displayed=True)
# the boxes of the leftmost header and cells will perfectly align if the layout is "broken",
# since the header is rotated, and likewise its width will be wider than the normal cell width.
return client.execute_script(
"""
const [header, cell] = arguments;
const headerBB = header.getBoundingClientRect();
const cellBB = cell.getBoundingClientRect();
return headerBB.left != cellBB.left && headerBB.width > cellBB.width;
""",
header,
cell,
)
@pytest.mark.asyncio
@pytest.mark.with_interventions
async def test_enabled(client):
assert await check_header_is_positioned_correctly(client)
@pytest.mark.asyncio
@pytest.mark.without_interventions
async def test_disabled(client):
assert not await check_header_is_positioned_correctly(client)