refactor: move common setup code to test_helper

Phillip Davis created

Change summary

test/test_component.rb       | 36 ++----------------------------------
test/test_helper.rb          | 35 ++++++++++++++++++++++++++++++++---
test/test_webhook_handler.rb | 19 ++-----------------
3 files changed, 36 insertions(+), 54 deletions(-)

Detailed changes

test/test_component.rb 🔗

@@ -1,7 +1,6 @@
 # frozen_string_literal: true
 
 require "test_helper"
-require_relative "../sgx-bwmsgsv2"
 
 def panic(e)
 	$panic = e
@@ -9,39 +8,8 @@ end
 
 class ComponentTest < Minitest::Test
 	def setup
-		SGXbwmsgsv2.instance_variable_set(:@written, [])
-
-		def SGXbwmsgsv2.write_to_stream(s)
-			@written ||= []
-			@written << s
-		end
-
-		REDIS.reset!
-		REDIS.set("catapult_jid-", "HERE")
-		REDIS.set("catapult_jid-+15550000000", "test@example.com")
-		REDIS.set("catapult_cred-test@example.com", [
-			'account', 'user', 'password', '+15550000000'
-		])
-	end
-
-	def written
-		SGXbwmsgsv2.instance_variable_get(:@written)
-	end
-
-	def xmpp_error_name(error)
-		error.find_first(
-			"child::*[name()!='text']",
-			Blather::StanzaError::STANZA_ERR_NS
-		).element_name
-	end
-
-	def xmpp_error_text(error)
-		error.find_first("ns:text", ns: Blather::StanzaError::STANZA_ERR_NS)&.text
-	end
-
-	def process_stanza(s)
-		SGXbwmsgsv2.send(:client).receive_data(s)
-		raise $panic if $panic
+		reset_stanzas!
+		reset_redis!
 	end
 
 	def test_message_unregistered

test/test_helper.rb 🔗

@@ -9,9 +9,38 @@ end
 require "minitest/autorun"
 require "webmock/minitest"
 
+MMS_PROXY = "https://proxy.test.example.com/"
+
+_saved_argv = ARGV.dup
+ARGV[0] = "component"
+ARGV[6] = MMS_PROXY
+
+require_relative "../sgx-bwmsgsv2"
+ARGV.replace(_saved_argv)
+
+def SGXbwmsgsv2.write_to_stream(s)
+	@written ||= []
+	@written << s
+end
+
+def reset_stanzas!
+	SGXbwmsgsv2.instance_variable_set(:@written, [])
+end
+
+def reset_redis!
+	REDIS.reset!
+	REDIS.set("catapult_jid-", "HERE")
+	REDIS.set("catapult_jid-+15550000000", "test@example.com")
+	REDIS.set("catapult_cred-test@example.com", [
+		'account', 'user', 'password', '+15550000000'
+	])
+end
+
+def written
+	SGXbwmsgsv2.instance_variable_get(:@written)
+end
+
 begin
-	require "pry-rescue/minitest"
-	require "pry-reload"
 	require "pry-byebug"
 
 	module Minitest
@@ -31,7 +60,6 @@ rescue LoadError, NameError
 	nil
 end
 
-ARGV[0] = "component"
 
 $VERBOSE = nil
 
@@ -170,6 +198,7 @@ module Minitest
 				EM.run do
 					Fiber.new {
 						ARGV[0] = "component"
+						ARGV[6] = MMS_PROXY
 						begin
 							send("raw_#{m}")
 						rescue

test/test_webhook_handler.rb 🔗

@@ -9,23 +9,8 @@ end
 
 class WebhookHandlerTest < Minitest::Test
 	def setup
-		SGXbwmsgsv2.instance_variable_set(:@written, [])
-
-		def SGXbwmsgsv2.write_to_stream(s)
-			@written ||= []
-			@written << s
-		end
-
-		REDIS.reset!
-		REDIS.set("catapult_jid-", "HERE")
-		REDIS.set("catapult_jid-+15550000000", "test@example.com")
-		REDIS.set("catapult_cred-test@example.com", [
-			'account', 'user', 'password', '+15550000000'
-		])
-	end
-
-	def written
-		SGXbwmsgsv2.instance_variable_get(:@written)
+		reset_stanzas!
+		reset_redis!
 	end
 
 	def invoke_webhook(payload, extra_env: {})