28 lines
988 B
Python
28 lines
988 B
Python
"""Source-level regression tests for the Kanban board UI."""
|
|
|
|
from pathlib import Path
|
|
|
|
|
|
REPO_ROOT = Path(__file__).resolve().parents[1]
|
|
STYLE_CSS = (REPO_ROOT / "static" / "style.css").read_text(encoding="utf-8")
|
|
PANELS_JS = (REPO_ROOT / "static" / "panels.js").read_text(encoding="utf-8")
|
|
|
|
|
|
def _css_rule(selector: str) -> str:
|
|
start = STYLE_CSS.find(selector + "{")
|
|
assert start != -1, f"missing CSS selector: {selector}"
|
|
end = STYLE_CSS.find("}", start)
|
|
assert end != -1, f"unterminated CSS selector: {selector}"
|
|
return STYLE_CSS[start : end + 1]
|
|
|
|
|
|
def test_kanban_columns_render_scrollable_card_lists():
|
|
assert 'class="kanban-column-body"' in PANELS_JS
|
|
assert "tasks.map(task => _kanbanCard(task, col.name)).join('')" in PANELS_JS
|
|
|
|
rule = _css_rule(".kanban-column-body")
|
|
assert "max-height:min(68vh,720px)" in rule
|
|
assert "overflow-y:auto" in rule
|
|
assert "overscroll-behavior:contain" in rule
|
|
assert "scrollbar-gutter:stable" in rule
|