require 'minitest/autorun' require 'prism' class FormForHelperTest < Minitest::Test FakeModel = Struct.new(:id, :title) do def persisted? !id.nil? end end HelpersWithCsrf = Struct.new(:csrf_token) def render(source, helpers = nil) Prism::Template.render(source, {}, nil, helpers) end def test_form_for_new_record_uses_post html = render(<<~ERB) <% form_for(FormForHelperTest::FakeModel.new, url: "/posts") do |f| %> <%== f.text_field(:title) %> <% end %> ERB assert_includes html, '
' end def test_form_for_persisted_record_defaults_to_patch_via_method_override html = render(<<~ERB) <% form_for(FormForHelperTest::FakeModel.new(1, "hi"), url: "/posts/1") do |f| %> <%== f.submit %> <% end %> ERB assert_includes html, '