diff --git a/javascript/packages/linter/test/rules/html-no-nested-forms.test.ts b/javascript/packages/linter/test/rules/html-no-nested-forms.test.ts index a2aa5edf4..9e79626da 100644 --- a/javascript/packages/linter/test/rules/html-no-nested-forms.test.ts +++ b/javascript/packages/linter/test/rules/html-no-nested-forms.test.ts @@ -70,6 +70,115 @@ describe("html-no-nested-forms", () => { `) }) + test("passes for form_with inside a block helper", () => { + expectNoOffenses(dedent` + <%= panel do %> + <%= form_with url: "/search" do |form| %> + <%= form.submit %> + <% end %> + <% end %> + `) + }) + + test("passes for form_with inside nested block helpers with a receiver", () => { + expectNoOffenses(dedent` + <%= ui.card do %> + <%= ui.card_body do %> + <%= form_with url: "/search" do |form| %> + <%= form.submit %> + <% end %> + <% end %> + <% end %> + `) + }) + + test("passes for button_to inside a component render block", () => { + expectNoOffenses(dedent` + <%= render Card.new(tag: :span) do %> + <%= button_to path, class: "x" do %>Hi<% end %> + <% end %> + `) + }) + + test("passes for form_with inside a component slot block", () => { + expectNoOffenses(dedent` + <%= render(CardComponent.new) do |card| %> + <% card.with_footer do %> + <%= form_with url: "/search" do |form| %> + <%= form.submit %> + <% end %> + <% end %> + <% end %> + `) + }) + + test("passes for sibling form helpers inside a partial render block", () => { + expectNoOffenses(dedent` + <%= render "shared/panel", id: "x", title: "T" do %> +