fix: webhook tests need to stub component's `write`

Phillip Davis created

Change summary

test/test_component.rb | 34 +++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)

Detailed changes

test/test_component.rb 🔗

@@ -582,20 +582,28 @@ class ComponentTest < Minitest::Test
 	em :test_passthrough_message_emits_to_stream
 
 	def invoke_webhook(payload)
-		handler = WebhookHandler.new
-		env = {
-			"REQUEST_URI" => "/",
-			"REQUEST_METHOD" => "POST",
-			"params" => {"_json" => [payload]}
-		}
-		handler.instance_variable_set(:@env, env)
-		def handler.params
-			@env["params"]
-		end
+		with_stubs([
+			[
+				SGXbwmsgsv2,
+				:write,
+				->(data) { SGXbwmsgsv2.write_to_stream(data) }
+			]
+		]) do
+			handler = WebhookHandler.new
+			env = {
+				"REQUEST_URI" => "/",
+				"REQUEST_METHOD" => "POST",
+				"params" => {"_json" => [payload]}
+			}
+			handler.instance_variable_set(:@env, env)
+			def handler.params
+				@env["params"]
+			end
 
-		EMPromise.resolve(nil).then {
-			handler.response(env)
-		}.sync
+			EMPromise.resolve(nil).then {
+				handler.response(env)
+			}.sync
+		end
 	end
 
 	def test_inbound_sms_emits_to_stream