Files
odysseus/tests/test_email_picker_exclusivity_static.py
T

21 lines
1.0 KiB
Python

from pathlib import Path
import re
ROOT = Path(__file__).resolve().parent.parent
def test_email_folder_and_filter_pickers_are_exclusive_and_escape_safe():
source = (ROOT / "static/js/emailLibrary.js").read_text(encoding="utf-8")
assert source.count("const filterMenu = document.getElementById('email-filter-menu');") == 1
assert source.count("const folderMenu = document.getElementById('email-folder-menu');") == 1
assert source.count("e.stopImmediatePropagation?.();") >= 2
assert "filterMenu?._dismiss?.();" in source
assert "folderMenu?._dismiss?.();" in source
escape_handler = source[source.index("state._libInnerEscHandler = (e) => {"):source.index("window.addEventListener('keydown', state._libInnerEscHandler, true)")]
assert "if (dismissTopMenu()) {" in escape_handler
assert "window.addEventListener('keydown', state._libInnerEscHandler, true)" in source
inbox = (ROOT / "static/js/emailInbox.js").read_text(encoding="utf-8")
assert re.search(r"from './emailLibrary\.js\?v=[A-Za-z0-9_-]+'", inbox)