diff --git a/test/sandbox/app/components/form_component.html.erb b/test/sandbox/app/components/form_component.html.erb new file mode 100644 index 000000000..ebd7a7da1 --- /dev/null +++ b/test/sandbox/app/components/form_component.html.erb @@ -0,0 +1 @@ +<%= form_tag do %><% end %> diff --git a/test/sandbox/app/components/form_component.rb b/test/sandbox/app/components/form_component.rb new file mode 100644 index 000000000..7126a5ccf --- /dev/null +++ b/test/sandbox/app/components/form_component.rb @@ -0,0 +1,4 @@ +# frozen_string_literal: true + +class FormComponent < ViewComponent::Base +end diff --git a/test/sandbox/app/helpers/form_helper.rb b/test/sandbox/app/helpers/form_helper.rb new file mode 100644 index 000000000..36a1801c8 --- /dev/null +++ b/test/sandbox/app/helpers/form_helper.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +module FormHelper + def form_tag_html(options = {}) + safe_join [ + "Hello, World!".html_safe, + super(options), + ] + end +end diff --git a/test/sandbox/app/views/integration_examples/form_helper.erb b/test/sandbox/app/views/integration_examples/form_helper.erb new file mode 100644 index 000000000..57c01de17 --- /dev/null +++ b/test/sandbox/app/views/integration_examples/form_helper.erb @@ -0,0 +1 @@ +<%= render FormComponent.new %> diff --git a/test/sandbox/config/routes.rb b/test/sandbox/config/routes.rb index d43590bd0..2774a1633 100644 --- a/test/sandbox/config/routes.rb +++ b/test/sandbox/config/routes.rb @@ -20,4 +20,5 @@ get :render_component, to: "integration_examples#render_component" get :controller_inline_render_component, to: "integration_examples#controller_inline_render_component" get :controller_to_string_render_component, to: "integration_examples#controller_to_string_render_component" + get :form_helper, to: "integration_examples#form_helper" end diff --git a/test/view_component/integration_test.rb b/test/view_component/integration_test.rb index 7e4e10b8f..7d3cfca45 100644 --- a/test/view_component/integration_test.rb +++ b/test/view_component/integration_test.rb @@ -583,4 +583,13 @@ def test_sets_the_compiler_mode_in_development_mode assert_equal ViewComponent::Compiler::DEVELOPMENT_MODE, ViewComponent::Compiler.mode end end + + def test_uses_form_helper_methods + get "/form_helper" + + # The FormHelper module overrides form_tag_html to add this HTML + # fragment, so it should get included when form_tag is called + # from a ViewComponent. + assert_includes response.body, "Hello, World!" + end end