@@ -377,27 +377,41 @@ describe("useAgent hook", () => {
377377
378378 it ( "should update state property on server broadcast" , async ( ) => {
379379 const { host, protocol } = getTestWorkerHost ( ) ;
380- let capturedAgent : TestAgent | null = null ;
380+ let observerAgent : TestAgent | null = null ;
381+ let senderAgent : TestAgent | null = null ;
382+ const room = `hook-test-state-prop-server-${ crypto . randomUUID ( ) } ` ;
381383
382384 const { container } = await render (
383385 < SuspenseWrapper >
384386 < StateTrackingComponent
385387 options = { {
386388 agent : "TestStateAgent" ,
387- name : "hook-test-state-prop-server" ,
389+ name : room ,
388390 host,
389391 protocol
390392 } }
391393 onAgent = { ( agent ) => {
392- capturedAgent = agent ;
394+ observerAgent = agent ;
395+ } }
396+ />
397+ < TestAgentComponent
398+ options = { {
399+ agent : "TestStateAgent" ,
400+ name : room ,
401+ host,
402+ protocol
403+ } }
404+ onAgent = { ( agent ) => {
405+ senderAgent = agent ;
393406 } }
394407 />
395408 </ SuspenseWrapper >
396409 ) ;
397410
398411 await vi . waitFor (
399412 ( ) => {
400- expect ( capturedAgent ?. identified ) . toBe ( true ) ;
413+ expect ( observerAgent ?. identified ) . toBe ( true ) ;
414+ expect ( senderAgent ?. identified ) . toBe ( true ) ;
401415 const stateEl = container . querySelector (
402416 '[data-testid="agent-state"]'
403417 ) ;
@@ -406,15 +420,16 @@ describe("useAgent hook", () => {
406420 { timeout : 10000 }
407421 ) ;
408422
409- // Send state — server will broadcast back, which updates agent.state
423+ // Trigger a server-side setState. Unlike client setState, this exercises
424+ // the server broadcast path back to the same connection.
410425 const newState = {
411426 count : 999 ,
412427 items : [ "server-state" ] ,
413428 lastUpdated : 2000
414429 } ;
415- capturedAgent ! . setState ( newState ) ;
430+ senderAgent ! . setState ( newState ) ;
416431
417- // Wait for the server broadcast to update state (second render)
432+ // Wait for the server broadcast to update state (second render).
418433 await vi . waitFor (
419434 ( ) => {
420435 const stateEl = container . querySelector (
0 commit comments