class RubyIndexer::EnhancementTest

def test_creating_anonymous_classes_from_enhancement

def test_creating_anonymous_classes_from_enhancement
  Class.new(Enhancement) do
    def on_call_node_enter(call_node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
      case call_node.name
      when :context
        arguments = call_node.arguments&.arguments
        first_argument = arguments&.first
        return unless first_argument.is_a?(Prism::StringNode)
        @listener.add_class(
          "<RSpec:#{first_argument.content}>",
          call_node.location,
          first_argument.location,
        )
      when :subject
        @listener.add_method("subject", call_node.location, [])
      end
    end
    def on_call_node_leave(call_node) # rubocop:disable RubyLsp/UseRegisterWithHandlerMethod
      return unless call_node.name == :context
      @listener.pop_namespace_stack
    end
  end
  index(<<~RUBY)
    context "does something" do
      subject { call_whatever }
    end
  RUBY
  refute_nil(@index.resolve_method("subject", "<RSpec:does something>"))
end