@@ -5,8 +5,10 @@ class SemanticQueryBuilderTest < ActiveSupport::TestCase
55 @builder = SemanticQueryBuilder . new
66 end
77
8- def mock_lambda_invoke ( response_data )
9- # Use StringIO to simulate real AWS SDK behavior (payload is IO-like, not a plain string)
8+ # Sets up a mock Lambda response for testing semantic query builder.
9+ # Mocks Aws::Lambda::Client#invoke to return the provided response_data, simulating AWS SDK
10+ # payload (StringIO).
11+ def setup_mock_lambda ( response_data )
1012 mock_response = Struct . new ( :payload ) . new ( StringIO . new ( response_data . to_json ) )
1113 Aws ::Lambda ::Client . any_instance . expects ( :invoke ) . returns ( mock_response )
1214 end
@@ -34,7 +36,7 @@ def mock_lambda_invoke(response_data)
3436
3537 test 'builds semantic query from lambda response' do
3638 query_text = 'hello world'
37- expected_response = {
39+ mock_response = {
3840 'query' => {
3941 'bool' => {
4042 'should' => [
@@ -45,7 +47,7 @@ def mock_lambda_invoke(response_data)
4547 }
4648 }
4749
48- mock_lambda_invoke ( expected_response )
50+ setup_mock_lambda ( mock_response )
4951
5052 params = { q : query_text }
5153 result = @builder . build ( params )
@@ -77,7 +79,7 @@ def mock_lambda_invoke(response_data)
7779 query_text = 'no query key'
7880 invalid_response = { 'result' => { } }
7981
80- mock_lambda_invoke ( invalid_response )
82+ setup_mock_lambda ( invalid_response )
8183
8284 params = { q : query_text }
8385
@@ -90,7 +92,7 @@ def mock_lambda_invoke(response_data)
9092 query_text = 'invalid query type'
9193 invalid_response = { 'query' => 'not a hash' }
9294
93- mock_lambda_invoke ( invalid_response )
95+ setup_mock_lambda ( invalid_response )
9496
9597 params = { q : query_text }
9698
0 commit comments