mirror of
https://github.com/MervinPraison/PraisonAIUI.git
synced 2026-11-07 05:56:17 -10:00
fix: emit main before shellHeader insertBefore in dashboard generator (fixes #174)
The dashboard.js generator emitted root.insertBefore(shellHeader, main) before root.appendChild(main), so regenerating the bundle re-introduced the #166/#174 insertBefore NotFoundError. Reorder the generator to append main first, and lock it with a source-parsing regression test. Co-authored-by: Mervin Praison <[email protected]>
This commit is contained in:
1 parent
d0c8e060ff
commit
f0c298802b
2 files changed
+19
-4
No files matched your search
@@ -199,11 +199,11 @@ text = text.replace(
|
|||||||
root.appendChild(sidebar);
|
root.appendChild(sidebar);
|
||||||
setupMobileNav(root, sidebar);
|
setupMobileNav(root, sidebar);
|
||||||
}
|
}
|
||||||
|
root.appendChild(main);
|
||||||
const shellHeader = document.createElement('div');
|
const shellHeader = document.createElement('div');
|
||||||
shellHeader.id = 'db-shell-header-slot';
|
shellHeader.id = 'db-shell-header-slot';
|
||||||
renderSlot('shell:header', shellHeader);
|
renderSlot('shell:header', shellHeader);
|
||||||
if (shellHeader.children.length) root.insertBefore(shellHeader, main);
|
if (shellHeader.children.length) root.insertBefore(shellHeader, main);""",
|
||||||
root.appendChild(main);""",
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# 6) selectPage toolbar
|
# 6) selectPage toolbar
|
||||||
|
|||||||
@@ -13,11 +13,12 @@ from __future__ import annotations
|
|||||||
import re
|
import re
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
ROOT = Path(__file__).resolve().parents[2]
|
||||||
FRONTEND = (
|
FRONTEND = (
|
||||||
Path(__file__).resolve().parents[2]
|
ROOT / "src" / "praisonaiui" / "templates" / "frontend" / "plugins"
|
||||||
/ "src" / "praisonaiui" / "templates" / "frontend" / "plugins"
|
|
||||||
)
|
)
|
||||||
DASHBOARD_JS = FRONTEND / "dashboard.js"
|
DASHBOARD_JS = FRONTEND / "dashboard.js"
|
||||||
|
GENERATOR = ROOT / "scripts" / "patch_dashboard_modular.py"
|
||||||
|
|
||||||
|
|
||||||
class TestDashboardShellOrder:
|
class TestDashboardShellOrder:
|
||||||
@@ -48,3 +49,17 @@ class TestDashboardShellOrder:
|
|||||||
body,
|
body,
|
||||||
)
|
)
|
||||||
assert m, "shellHeader insert must be guarded by children.length"
|
assert m, "shellHeader insert must be guarded by children.length"
|
||||||
|
|
||||||
|
def test_generator_emits_main_before_insert_before(self):
|
||||||
|
src = GENERATOR.read_text()
|
||||||
|
append_idx = src.find("root.appendChild(main);\n const shellHeader")
|
||||||
|
insert_idx = src.find("root.insertBefore(shellHeader, main)")
|
||||||
|
assert append_idx != -1, (
|
||||||
|
"generator must emit root.appendChild(main) before shellHeader"
|
||||||
|
)
|
||||||
|
assert insert_idx != -1, (
|
||||||
|
"generator must emit root.insertBefore(shellHeader, main)"
|
||||||
|
)
|
||||||
|
assert append_idx < insert_idx, (
|
||||||
|
"generator must append main to root before insertBefore references it"
|
||||||
|
)
|
||||||
Reference in new issue
Block a user