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:
praisonai-triage-agent[bot]andMervin Praison authored and MervinPraison committed 2026-07-09 17:00:21 +01:00
1 parent d0c8e060ff
commit f0c298802b
2 files changed
+19 -4

No files matched your search

+2 -2
View File
@@ -199,11 +199,11 @@ text = text.replace(
root.appendChild(sidebar);
setupMobileNav(root, sidebar);
}
root.appendChild(main);
const shellHeader = document.createElement('div');
shellHeader.id = 'db-shell-header-slot';
renderSlot('shell:header', shellHeader);
if (shellHeader.children.length) root.insertBefore(shellHeader, main);
root.appendChild(main);""",
if (shellHeader.children.length) root.insertBefore(shellHeader, main);""",
)
# 6) selectPage toolbar
+17 -2
View File
@@ -13,11 +13,12 @@ from __future__ import annotations
import re
from pathlib import Path
ROOT = Path(__file__).resolve().parents[2]
FRONTEND = (
Path(__file__).resolve().parents[2]
/ "src" / "praisonaiui" / "templates" / "frontend" / "plugins"
ROOT / "src" / "praisonaiui" / "templates" / "frontend" / "plugins"
)
DASHBOARD_JS = FRONTEND / "dashboard.js"
GENERATOR = ROOT / "scripts" / "patch_dashboard_modular.py"
class TestDashboardShellOrder:
@@ -48,3 +49,17 @@ class TestDashboardShellOrder:
body,
)
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"
)