module ViewComponent::TestHelpers

def controller

def controller
  @controller ||= Base.test_controller.constantize.new.tap { |c| c.request = request }.extend(Rails.application.routes.url_helpers)
end

def page

def page
  Capybara::Node::Simple.new(@rendered_component)
end

def refute_component_rendered

def refute_component_rendered
  assert_no_selector("body")
end

def render_inline(component, **args, &block)

def render_inline(component, **args, &block)
  @rendered_component =
    if Rails.version.to_f >= 6.1
      controller.view_context.render(component, args, &block)
    else
      controller.view_context.render_component(component, &block)
    end
  Nokogiri::HTML.fragment(@rendered_component)
end

def request

def request
  @request ||= ActionDispatch::TestRequest.create
end

def with_variant(variant)

def with_variant(variant)
  old_variants = controller.view_context.lookup_context.variants
  controller.view_context.lookup_context.variants = variant
  yield
  controller.view_context.lookup_context.variants = old_variants
end