__                 _ _                _
  / _| ___   ___   __| | |__   __ _ _ __| | __
 | |_ / _ \ / _ \ / _` | '_ \ / _` | '__| |/ /
 |  _| (_) | (_) | (_| | |_) | (_| | |  |   <
 |_|  \___/ \___/ \__,_|_.__/ \__,_|_|  |_|\_\

A personal BBS  ·  Missoula, Montana  ·  formerly NaClCON BBS

Connect from your terminal: telnet naclconbbs.net 23  |  ssh naclconbbs.net -p 2222

  • 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