@@ -701,6 +701,10 @@ def test_listener_with_custom_listener_elements
701701 end
702702
703703 def test_bidi_bridge
704+ # Mock the BiDi WebSocket connection using Minitest
705+ mock_bidi = Minitest ::Mock . new
706+ mock_bidi . expect ( :close , nil )
707+
704708 android_mock_create_session_w3c_direct = lambda do |core |
705709 response = {
706710 value : {
@@ -709,15 +713,18 @@ def test_bidi_bridge
709713 platformName : :android ,
710714 automationName : ENV [ 'APPIUM_DRIVER' ] || 'uiautomator2' ,
711715 deviceName : 'Android Emulator' ,
712- webSocketUrl : 'ws://192.168.1.49 :4723/bidi/fbed26aa-e104-42fc-9f5e-b401dc6cc2bc'
716+ webSocketUrl : 'ws://127.0.0.1 :4723/bidi/fbed26aa-e104-42fc-9f5e-b401dc6cc2bc'
713717 }
714718 }
715719 } . to_json
716720
717721 stub_request ( :post , 'http://127.0.0.1:4723/session' )
718722 . to_return ( headers : HEADER , status : 200 , body : response )
719723
720- driver = core . start_driver
724+ driver = nil
725+ ::Selenium ::WebDriver ::BiDi . stub ( :new , mock_bidi ) do
726+ driver = core . start_driver
727+ end
721728
722729 assert_requested ( :post , 'http://127.0.0.1:4723/session' , times : 1 )
723730 driver
@@ -730,8 +737,14 @@ def test_bidi_bridge
730737 driver = android_mock_create_session_w3c_direct . call ( core )
731738
732739 assert_equal driver . send ( :bridge ) . class , Appium ::Core ::Base ::BiDiBridge
733- assert_equal driver . instance_variable_get ( :@wait_timeout ) , 30
734740 assert !driver . send ( :bridge ) . respond_to? ( :driver )
741+
742+ stub_request ( :delete , 'http://127.0.0.1:4723/session/1234567890' )
743+ . to_return ( headers : HEADER , status : 200 , body : { value : nil } . to_json )
744+
745+ driver . quit
746+ # Verify that close was called exactly once
747+ mock_bidi . verify
735748 end
736749
737750 def test_elements
0 commit comments