"""Static checks for the inline Workspace-panel umbrella graph integration.""" from pathlib import Path ROOT = Path(__file__).resolve().parents[2] INLINE_JS = ROOT / "static" / "umbrella_inline.js" INLINE_CSS = ROOT / "static" / "umbrella_inline.css" UMBRELLA_HTML = ROOT / "static" / "umbrella.html" UMBRELLA_CSS = ROOT / "static" / "umbrella.css" PLUGIN = ROOT / "plugin.py" def test_plugin_injects_inline_umbrella_assets(): src = PLUGIN.read_text() assert "/plugins/{STATIC_PREFIX}/umbrella_inline.css" in src assert "/plugins/{STATIC_PREFIX}/umbrella_inline.js" in src def test_inline_graph_targets_workspace_right_panel(): src = INLINE_JS.read_text() assert "btnSvrntyWorkspaceGraph" in src assert '.rightpanel .panel-actions' in src assert "Project graph" in src assert "svrntyUmbrellaInlineSurface" in src assert "/plugins/svrnty/umbrella.html?inline=1" in src assert "window.open(" not in src def test_inline_graph_uses_right_panel_mode_switching(): src = INLINE_JS.read_text() assert "openWorkspaceGraph" in src assert "closeWorkspaceGraph" in src assert "openWorkspacePanel" in src assert "expandPanelForGraph" in src assert "restorePanelWidth" in src assert 'panel.style.width = "500px"' in src assert "btnClearPreview" in src assert "stopImmediatePropagation" in src def test_inline_graph_has_panel_surface_styles(): src = INLINE_CSS.read_text() assert ".svrnty-umbrella-inline-surface" in src assert '.svrnty-umbrella-inline-surface[data-open="true"]' in src assert ".svrnty-umbrella-inline-frame" in src def test_standalone_umbrella_supports_inline_mode(): html = UMBRELLA_HTML.read_text() css = UMBRELLA_CSS.read_text() assert 'get("inline") === "1"' in html assert "umbrella-inline" in html assert "body.umbrella-inline .umbrella-header" in css assert "body.umbrella-inline .umbrella-footer" in css