@@ -372,14 +372,6 @@ def render_to_string(**_opts)
372372 end
373373
374374 describe "Component streaming concurrency" do
375- def with_concurrent_stream_drain ( enabled )
376- original = ReactOnRailsPro . configuration . concurrent_stream_drain
377- ReactOnRailsPro . configuration . concurrent_stream_drain = enabled
378- yield
379- ensure
380- ReactOnRailsPro . configuration . concurrent_stream_drain = original
381- end
382-
383375 def run_stream ( controller , template : "ignored" )
384376 Sync do |parent |
385377 parent . async { controller . stream_view_containing_react_components ( template : template ) }
@@ -401,75 +393,42 @@ def setup_stream_test(component_count: 2)
401393 [ component_queues , controller , mocked_stream ]
402394 end
403395
404- it "processes components concurrently vs sequentially" do
405- seq_queues , seq_controller , seq_stream = setup_stream_test
406-
407- with_concurrent_stream_drain ( false ) do
408- run_stream ( seq_controller ) do |_parent |
409- seq_queues [ 0 ] . enqueue ( "A1" )
410- seq_queues [ 0 ] . enqueue ( "A2" )
411- seq_queues [ 0 ] . close
412-
413- seq_queues [ 1 ] . enqueue ( "B1" )
414- seq_queues [ 1 ] . enqueue ( "B2" )
415- seq_queues [ 1 ] . close
416-
417- sleep 0.1
418- end
419- end
420-
421- # Verify sequential behavior: all A chunks processed before B chunks start
422- expect ( seq_stream ) . to have_received ( :write ) . with ( "TEMPLATE" )
423- expect ( seq_stream ) . to have_received ( :write ) . with ( "A1" )
424- expect ( seq_stream ) . to have_received ( :write ) . with ( "A2" )
425- expect ( seq_stream ) . to have_received ( :write ) . with ( "B1" )
426- expect ( seq_stream ) . to have_received ( :write ) . with ( "B2" )
427-
428- conc_queues , conc_controller , conc_stream = setup_stream_test
396+ it "streams components concurrently" do
397+ queues , controller , stream = setup_stream_test
429398
430- with_concurrent_stream_drain ( true ) do
431- run_stream ( conc_controller ) do |_parent |
432- conc_queues [ 1 ] . enqueue ( "B1" )
433- sleep 0.05
434- expect ( conc_stream ) . to have_received ( :write ) . with ( "B1" )
399+ run_stream ( controller ) do |_parent |
400+ queues [ 1 ] . enqueue ( "B1" )
401+ sleep 0.05
402+ expect ( stream ) . to have_received ( :write ) . with ( "B1" )
435403
436- conc_queues [ 0 ] . enqueue ( "A1" )
437- sleep 0.05
438- expect ( conc_stream ) . to have_received ( :write ) . with ( "A1" )
404+ queues [ 0 ] . enqueue ( "A1" )
405+ sleep 0.05
406+ expect ( stream ) . to have_received ( :write ) . with ( "A1" )
439407
440- conc_queues [ 1 ] . enqueue ( "B2" )
441- conc_queues [ 1 ] . close
442- sleep 0.05
408+ queues [ 1 ] . enqueue ( "B2" )
409+ queues [ 1 ] . close
410+ sleep 0.05
443411
444- conc_queues [ 0 ] . enqueue ( "A2" )
445- conc_queues [ 0 ] . close
446- sleep 0.1
447- end
412+ queues [ 0 ] . enqueue ( "A2" )
413+ queues [ 0 ] . close
414+ sleep 0.1
448415 end
449-
450- # Verify concurrent behavior: components can process interleaved
451- expect ( conc_stream ) . to have_received ( :write ) . with ( "B1" )
452- expect ( conc_stream ) . to have_received ( :write ) . with ( "A1" )
453- expect ( conc_stream ) . to have_received ( :write ) . with ( "B2" )
454- expect ( conc_stream ) . to have_received ( :write ) . with ( "A2" )
455416 end
456417
457418 it "maintains per-component ordering" do
458419 queues , controller , stream = setup_stream_test
459420
460- with_concurrent_stream_drain ( true ) do
461- run_stream ( controller ) do |_parent |
462- queues [ 0 ] . enqueue ( "X1" )
463- queues [ 0 ] . enqueue ( "X2" )
464- queues [ 0 ] . enqueue ( "X3" )
465- queues [ 0 ] . close
421+ run_stream ( controller ) do |_parent |
422+ queues [ 0 ] . enqueue ( "X1" )
423+ queues [ 0 ] . enqueue ( "X2" )
424+ queues [ 0 ] . enqueue ( "X3" )
425+ queues [ 0 ] . close
466426
467- queues [ 1 ] . enqueue ( "Y1" )
468- queues [ 1 ] . enqueue ( "Y2" )
469- queues [ 1 ] . close
427+ queues [ 1 ] . enqueue ( "Y1" )
428+ queues [ 1 ] . enqueue ( "Y2" )
429+ queues [ 1 ] . close
470430
471- sleep 0.2
472- end
431+ sleep 0.2
473432 end
474433
475434 # Verify all chunks were written
@@ -483,10 +442,8 @@ def setup_stream_test(component_count: 2)
483442 it "handles empty component list" do
484443 queues , controller , stream = setup_stream_test ( component_count : 0 )
485444
486- with_concurrent_stream_drain ( true ) do
487- run_stream ( controller ) do |_parent |
488- sleep 0.1
489- end
445+ run_stream ( controller ) do |_parent |
446+ sleep 0.1
490447 end
491448
492449 expect ( stream ) . to have_received ( :write ) . with ( "TEMPLATE" )
@@ -496,14 +453,12 @@ def setup_stream_test(component_count: 2)
496453 it "handles single component" do
497454 queues , controller , stream = setup_stream_test ( component_count : 1 )
498455
499- with_concurrent_stream_drain ( true ) do
500- run_stream ( controller ) do |_parent |
501- queues [ 0 ] . enqueue ( "Single1" )
502- queues [ 0 ] . enqueue ( "Single2" )
503- queues [ 0 ] . close
456+ run_stream ( controller ) do |_parent |
457+ queues [ 0 ] . enqueue ( "Single1" )
458+ queues [ 0 ] . enqueue ( "Single2" )
459+ queues [ 0 ] . close
504460
505- sleep 0.1
506- end
461+ sleep 0.1
507462 end
508463
509464 expect ( stream ) . to have_received ( :write ) . with ( "Single1" )
@@ -519,13 +474,11 @@ def setup_stream_test(component_count: 2)
519474 sleep 0.05
520475 end
521476
522- with_concurrent_stream_drain ( true ) do
523- run_stream ( controller ) do |_parent |
524- 5 . times { |i | queues [ 0 ] . enqueue ( "Chunk#{ i } " ) }
525- queues [ 0 ] . close
477+ run_stream ( controller ) do |_parent |
478+ 5 . times { |i | queues [ 0 ] . enqueue ( "Chunk#{ i } " ) }
479+ queues [ 0 ] . close
526480
527- sleep 1
528- end
481+ sleep 1
529482 end
530483
531484 expect ( write_timestamps . length ) . to be >= 2
0 commit comments