luv

Workshop wiki

lobby-tests.lisp

luvcraft/lobby-tests.lisp

system luvcraft/test · 21 definitions · on GitHub

in-package#:luvcraft.clim.tests
defclassluvcraft-lobby-test-transport
opens:initform0:accessorluvcraft-lobby-test-opens
closes:initform0:accessorluvcraft-lobby-test-closes
defmethodluv.lobby:open-lobby-transport
declare
ignoreclient
incf
luvcraft-lobby-test-openstransport
defmethodluv.lobby:subscribe-lobby-transport
connectionclient
declare
ignoretransportclient
connection
defmethodluv.lobby:publish-lobby-transport
connectionclientpayload
declare
ignoretransportconnectionclient
payload
defmethodluv.lobby:next-lobby-publication
connectionclient
declare
ignoretransportconnectionclient
sleep1/100
nil
defmethodluv.lobby:close-lobby-transport
connectionclient
declare
ignoreconnectionclient
incf
luvcraft-lobby-test-closestransport
defclasstest-luvcraft-lobby-overlay
released-p:initformnil:accessortest-lobby-overlay-released-p
defmethodluvcraft:release-luvcraft-overlay
setf
test-lobby-overlay-released-poverlay
t
defclassluvcraft-status-boundary-test-canvas
requests:initform0:accessorluvcraft-status-boundary-test-requests
defmethodluv:request-canvas-frame
incf
luvcraft-status-boundary-test-requestscanvas
funcallfunction0d0
defmethodluvcraft:release-luvcraft-overlay
declare
ignoreoverlay
error"scripted HUD release failure"
defunwait-for-luvcraft-lobby-test
predicate
looprepeat200when
funcallpredicate
returntdo
sleep1/200
defunmake-test-luvcraft-lobby-session
overlay-class
let*
session
transport
client
luv.lobby:make-lobby-client:client-id-prefix"luvcraft-test":transporttransport
overlay
make-instanceoverlay-class:sessionsession:framenil:mirrornil
setf
luvcraft:luvcraft-session-lobby-clientsession
client
luvcraft:luvcraft-session-overlayssession
listoverlay
valuessessionclienttransportoverlay
deftestluvcraft-lobby-adapter-start-stop-and-restart-are-idempotent
multiple-value-bind
sessionclienttransportoverlay
unwind-protect
progn
ok
wait-for-luvcraft-lobby-test
lambda
eq:online
luv.lobby:lobby-snapshot-status
ok
test-lobby-overlay-released-poverlay
ok
null
luvcraft:luvcraft-session-overlayssession
ok
null
luvcraft:luvcraft-session-lobby-clientsession

Reinstalling the same stopped client exercises the adapter's durable-image restart path without opening a real MQTT socket.

let
fresh-overlay
make-instance'test-luvcraft-lobby-overlay:sessionsession:framenil:mirrornil
setf
luvcraft:luvcraft-session-lobby-clientsession
client
luvcraft:luvcraft-session-overlayssession
listfresh-overlay
ok
wait-for-luvcraft-lobby-test
lambda
>=
luvcraft-lobby-test-openstransport
2
ok
test-lobby-overlay-released-pfresh-overlay
ok
>=
luvcraft-lobby-test-closestransport
2
ignore-errors
deftestluvcraft-lobby-radio-starts-without-the-detailed-panel
let*
session
transport
client
luv.lobby:make-lobby-client:client-id-prefix"luvcraft-test":transporttransport
setf
luvcraft:luvcraft-session-lobby-clientsession
client
unwind-protect
progn
ok
wait-for-luvcraft-lobby-test
lambda
plusp
luvcraft-lobby-test-openstransport
ok
null
luvcraft:luvcraft-session-overlayssession
ignore-errors
deftestluvcraft-status-bar-is-the-default-shared-hud-without-a-lobby-panel
let*
session
make-instance'luvcraft:luvcraft-session:canvascanvas
overlay
make-instance'mcluv:luvcraft-status-bar-overlay:sessionsession:framenil:mirrornil
setf
luvcraft:luvcraft-session-overlayssession
listoverlay

Inventory's AROUND lifecycle and Status's AFTER lifecycle occupy distinct coordinates instead of silently replacing one another.

ok
find-method#'luvcraft:attach-luvcraft-hud'
:around
nil
ok
find-method#'luvcraft:attach-luvcraft-hud'
:after
nil
ok
=1
luvcraft-status-boundary-test-requestscanvas
ok
equal'
:application:pid:fps:heap:lobby:worktree:chunks
ok
string="luvcraft"
ok
null
luvcraft:handle-luvcraft-overlay-eventoverlaysessioncanvas
make-instance'luv:canvas-pointer-button-press-event:timestamp0:x12.0:y12.0:button:left:clicks1
ok
null
luvcraft:luvcraft-session-modal-focussession
multiple-value-bind
lefttoprightbottom
ok
equal'
0.0280.00.0
listlefttoprightbottom
setf
luvcraft:luvcraft-session-overlayssession
nil
deftestluvcraft-lobby-stop-attempts-radio-after-a-hud-release-error
multiple-value-bind
sessionclienttransportoverlay
declare
ignoreoverlay
unwind-protect
progn
ok
wait-for-luvcraft-lobby-test
lambda
plusp
luvcraft-lobby-test-openstransport
ok
null
luvcraft:luvcraft-session-overlayssession
ok
null
luvcraft:luvcraft-session-lobby-clientsession
ok
plusp
luvcraft-lobby-test-closestransport
ignore-errors
deftesttelegram-credentials-resolve-from-the-playing-session-cache
let*
client
luv.lobby:make-lobby-client:client-id-prefix"test":transport
session
setf
luvcraft:luvcraft-session-lobby-clientsession
client
luv.lobby:receive-lobby-publicationclient"luv/store/TELEGRAM_API_ID""12345"
ok
string="12345"
deftesttelegram-console-recovers-when-radio-credentials-arrive-late
let
console
telegram.client:*credential-files*nil
telegram.client:*credential-fallbacks*
list
lambda
name
cond
string=name"TELEGRAM_API_ID"
"12345"
string=name"TELEGRAM_API_HASH"
"deadbeef"
setf
mcluv::console-login-stageconsole
:api-id
ok
null
mcluv::console-login-stageconsole