diff --git a/test/form_test.exs b/test/form_test.exs index 3d3e6e6..c52f9d7 100644 --- a/test/form_test.exs +++ b/test/form_test.exs @@ -552,5 +552,40 @@ defmodule AshPhoenix.FormTest do assert [%Phoenix.HTML.Form{source: %AshPhoenix.Form{resource: AshPhoenix.Test.Post}}] = inputs_for(form_for(form, "action"), :post) end + + test "failing single intermediate form" do + post_id = Ash.UUID.generate() + comment = %Comment{text: "text", post: %Post{id: post_id, text: "Some text"}} + + form = + comment + |> Form.for_update(:update, + forms: [ + post: [ + data: comment.post, + type: :single, + resource: Post, + update_action: :update, + create_action: :create, + forms: [ + comments: [ + data: & &1.comments, + type: :list, + resource: Comment, + update_action: :update, + create_action: :create + ] + ] + ] + ] + ) + + assert [%Phoenix.HTML.Form{source: %AshPhoenix.Form{resource: AshPhoenix.Test.Post}}] = + form + |> form_for("action") + |> inputs_for(:post) + |> hd() + |> inputs_for(:comments) + end end end