• xtrn/syncivision/test_lobby_headless.js

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Fri Jul 10 01:39:22 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c5c821ce2ef5b886a4d3d24f
    Added Files:
    xtrn/syncivision/test_lobby_headless.js
    Log Message:
    syncivision: drive the lobby headless, without a terminal

    "The screen cannot be tested" turned out to be only half true. lobby.js
    needs console, bbs and user, which jsexec does not provide -- but those
    are three objects, and a script can supply them. Stub them, feed a
    scripted key sequence, and capture the command line the lobby would
    hand to the door.

    That catches every failure this file can have before a player meets
    it: a parse error, a misnamed model-layer call, a wrong argument
    order, and above all an unquoted cartridge path, which would silently
    truncate at the first space in "4-TRIS (2000) (Joseph Zbiciak).int".

    The test refuses to run when a plays.jsonl already exists. `system` is
    a permanent global in jsexec, so assigning to it does not shadow the
    real data_dir: the lobby's play record lands in the sysop's actual
    activity log, and the test would then delete it. Better to refuse.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net