Class: RailsAiContext::Tools::GenerateTest

Inherits:
BaseTool
  • Object
show all
Defined in:
lib/rails_ai_context/tools/generate_test.rb

Constant Summary

Constants inherited from BaseTool

BaseTool::SESSION_CONTEXT, BaseTool::SHARED_CACHE

Class Method Summary collapse

Methods inherited from BaseTool

abstract!, abstract?, cache_key, cached_context, config, extract_method_source_from_file, extract_method_source_from_string, find_closest_match, fuzzy_find_key, inherited, not_found_response, paginate, rails_app, registered_tools, reset_all_caches!, reset_cache!, session_queries, session_record, session_reset!, set_call_params, text_response

Class Method Details

.call(model: nil, controller: nil, file: nil, type: "unit", server_context: nil) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rails_ai_context/tools/generate_test.rb', line 35

def self.call(model: nil, controller: nil, file: nil, type: "unit", server_context: nil)
  unless model || controller || file
    return text_response("Provide at least one of: `model`, `controller`, or `file`.")
  end

  tests_data = cached_context[:tests] || {}
  framework = tests_data[:framework] || detect_framework
  patterns = detect_patterns(framework)

  if model
    generate_model_test(model.strip, framework, patterns, tests_data)
  elsif controller
    generate_controller_test(controller.strip, framework, patterns, tests_data)
  elsif file
    generate_file_test(file.strip, framework, patterns, tests_data, type)
  end
rescue => e
  text_response("Generate test error: #{e.message}")
end