Boots SVSimTestFactory (in-memory SQLite + reference-data CSV import), mints a battle via IMatchingBridge, opens a raw Socket.IO v2 client against the in-process TestServer, drives InitNetwork → Loaded → Swap, and asserts the right scripted frames come back in order. Verifies the full transport stack end-to-end: EIO3+SIO2 framing, encryptForNode codec, MsgPayloadCodec roundtrip, InboundTracker pubSeq dedup + ack echo, OutboundSequencer playSeq assignment, and ScriptedLifecycle's Path-A frame builders. Note: RawSocketIoTestClient.DisposeAsync skips the graceful CloseAsync handshake — TestServer's in-process WebSocket implementation can hang on it. Abrupt Dispose is fine: the server's ReceiveAsync throws WebSocketException, BattleSession.RunAsync returns, and the handler completes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.5 KiB
3.5 KiB