Module: Ask::Agent::Test::Assertions

Defined in:
lib/ask/agent/test.rb

Overview

Test assertions to include in Minitest test classes.

Instance Method Summary collapse

Instance Method Details

#assert_called_tool(name, msg = nil) ⇒ Object



131
132
133
134
# File 'lib/ask/agent/test.rb', line 131

def assert_called_tool(name, msg = nil)
  assert session.called_tool?(name),
         msg || "Expected tool #{name.inspect} to be called. Called: #{session.test_mode.called_tools.inspect}"
end

#assert_final_response(match, msg = nil) ⇒ Object



149
150
151
# File 'lib/ask/agent/test.rb', line 149

def assert_final_response(match, msg = nil)
  assert_match match, session.test_mode.final_response.to_s, msg
end

#assert_no_unused_stubs(msg = nil) ⇒ Object



153
154
155
156
# File 'lib/ask/agent/test.rb', line 153

def assert_no_unused_stubs(msg = nil)
  assert_empty session.test_mode.unused_stubs,
               msg || "Unused stubs: #{session.test_mode.unused_stubs.inspect}"
end

#assert_tool_order(names, msg = nil) ⇒ Object



141
142
143
144
145
146
147
# File 'lib/ask/agent/test.rb', line 141

def assert_tool_order(names, msg = nil)
  expected = names.map(&:to_s)
  called = session.test_mode.called_tools
  matched = called.first(expected.length)
  assert_equal expected, matched,
               msg || "Tool call order mismatch. Expected: #{expected.inspect}, Got: #{matched.inspect}"
end

#refute_called_tool(name, msg = nil) ⇒ Object



136
137
138
139
# File 'lib/ask/agent/test.rb', line 136

def refute_called_tool(name, msg = nil)
  refute session.called_tool?(name),
         msg || "Expected tool #{name.inspect} not to be called. Called: #{session.test_mode.called_tools.inspect}"
end

#sessionObject



127
128
129
# File 'lib/ask/agent/test.rb', line 127

def session
  @session || raise("@session not set — define it in setup")
end