feat: expand screeners and stabilize interactive feedback
This commit is contained in:
@@ -114,15 +114,56 @@ class FrontendContractTests(unittest.TestCase):
|
||||
self.assertIn(f'data-screener-mode="{mode}"', self.html)
|
||||
self.assertIn(f'data-screener-panel="{mode}"', self.html)
|
||||
for element_id in (
|
||||
"curatedStrategyList", "curatedRunButton", "quantFilterRows",
|
||||
"curatedStrategyList", "quantFilterRows",
|
||||
"quantScoreRows", "quantRunButton", "quantSaveButton",
|
||||
):
|
||||
self.assertIn(f'id="{element_id}"', self.html)
|
||||
for removed_id in (
|
||||
"curatedRunButton", "factorSyncButton", "screenerRunButton",
|
||||
"changeStrategyButton",
|
||||
):
|
||||
self.assertNotIn(f'id="{removed_id}"', self.html)
|
||||
self.assertIn("盘后自动候选池", self.html)
|
||||
self.assertIn("自定义选股", self.html)
|
||||
self.assertIn('id="strategyDrawer" class="strategy-drawer"', self.html)
|
||||
self.assertIn('id="openStrategyDrawerButton"', self.html)
|
||||
self.assertIn('id="closeStrategyDrawerButton"', self.html)
|
||||
self.assertIn('id="activeStrategyDescription"', self.html)
|
||||
self.assertIn('openStrategyDrawer("editor")', self.script)
|
||||
for element_id in ("curatedSuitableEnvironment", "curatedFailureRisk"):
|
||||
self.assertIn(f'id="{element_id}"', self.html)
|
||||
self.assertIn("meta.suitable_environment", self.script)
|
||||
self.assertIn("meta.failure_risk", self.script)
|
||||
self.assertIn('mode === "curated" ? "暂无符合条件个股"', self.script)
|
||||
|
||||
def test_curated_library_explains_empty_signals_and_supports_school_views(self):
|
||||
for element_id in ("curatedSchoolFilters", "curatedStrategyList"):
|
||||
self.assertIn(f'id="{element_id}"', self.html)
|
||||
for view in ("list", "grid"):
|
||||
self.assertIn(f'data-curated-view="{view}"', self.html)
|
||||
for school in ("基本面", "趋势", "短线", "动量"):
|
||||
self.assertIn(school, self.script)
|
||||
self.assertIn("curatedStrategyRunState", self.script)
|
||||
self.assertIn("必需数据已完整,本日没有股票同时满足", self.script)
|
||||
|
||||
def test_dialogs_and_dark_table_hover_have_shared_safety_constraints(self):
|
||||
redesign = (STATIC_DIR / "redesign-v2.css").read_text(encoding="utf-8")
|
||||
self.assertIn(".settings-dialog:not(.heaven-reading-dialog)[open] { margin: auto; }", redesign)
|
||||
self.assertIn("max-height: min(760px, calc(100dvh - 28px));", redesign)
|
||||
self.assertIn('#reviewWorkspaceView .data-table tbody tr:hover td', self.theme)
|
||||
self.assertIn('#reviewWorkspaceView .data-table tbody td', self.theme)
|
||||
self.assertIn('#screenerView .screener-result-frame tbody tr:hover td:last-child', self.theme)
|
||||
|
||||
def test_global_toast_has_one_owner_and_cannot_stretch_between_insets(self):
|
||||
styles = (STATIC_DIR / "styles.css").read_text(encoding="utf-8")
|
||||
wentian = (STATIC_DIR / "wentian-v2.css").read_text(encoding="utf-8")
|
||||
self.assertIn("#toast.toast {", styles)
|
||||
self.assertIn("top: auto;", styles)
|
||||
self.assertIn("left: auto;", styles)
|
||||
self.assertIn("height: auto;", styles)
|
||||
self.assertIn("#toast.toast[hidden] { display: none; }", styles)
|
||||
self.assertNotIn(".toast{position:fixed", self.design_system)
|
||||
self.assertNotRegex(wentian, r"(?m)^\.toast\s*\{")
|
||||
|
||||
def test_public_knowledge_editors_are_hidden_for_non_admins(self):
|
||||
self.assertIn('document.querySelector("#reasonForm").hidden = !isAdmin;', self.script)
|
||||
|
||||
Reference in New Issue
Block a user