diff options
Diffstat (limited to 'packages/meshbay-node/tests')
| -rw-r--r-- | packages/meshbay-node/tests/test_packaging_win.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/meshbay-node/tests/test_packaging_win.py b/packages/meshbay-node/tests/test_packaging_win.py index 1b7521a..8c8e272 100644 --- a/packages/meshbay-node/tests/test_packaging_win.py +++ b/packages/meshbay-node/tests/test_packaging_win.py @@ -151,3 +151,25 @@ def test_customInstall_stops_a_running_daemon_before_overwriting_it(): nsh = NSH.read_text(encoding="utf-8") body = nsh.split("!macro customInstall", 1)[1].split("!macroend", 1)[0] assert "taskkill /IM meshbay-node.exe /F" in body + + +def test_the_bundled_daemon_goes_on_the_user_path_and_comes_back_off(): + """ + The installer has no console entry point of its own; without this the + operator has to `cd` into resources\\node-runtime\\ to run `meshbay-node`. + The add uses stock WordFunc (no EnVar plugin — electron-builder's NSIS does + not bundle it) and the same $INSTDIR-relative string on the way out. + """ + nsh = NSH.read_text(encoding="utf-8") + assert "!insertmacro WordAdd" in nsh and "!insertmacro un.WordAdd" in nsh + + install = nsh.split("!macro customInstall", 1)[1].split("!macroend", 1)[0] + uninstall = nsh.split("!macro customUnInstall", 1)[1].split("!macroend", 1)[0] + assert 'HKCU "Environment" "Path"' in install + assert "${WordAdd}" in install and '"+${MB_NODE_BIN}"' in install + assert "${un.WordAdd}" in uninstall and '"-${MB_NODE_BIN}"' in uninstall + # New shells need the broadcast to notice. + assert "WM_WININICHANGE" in install and "WM_WININICHANGE" in uninstall + # PATH points at the real .exe dir, so `where meshbay-node` resolves to the + # binary the client and the W3 launcher use too — not a shim. + assert 'MB_NODE_BIN "$INSTDIR\\resources\\node-runtime"' in nsh |