@@ -2770,15 +2770,26 @@ defmodule PolymorphicEmbedTest do
27702770 for generator <- @ generators do
27712771 reminder_module = get_module ( Reminder , generator )
27722772
2773- attrs = % {
2774- date: ~U[ 2020-05-28 02:57:19Z] ,
2775- text: "This is an Email reminder" ,
2776- channel: % {
2777- address: "a" ,
2778- valid: true ,
2779- confirmed: true
2780- }
2781- }
2773+ attrs =
2774+ if polymorphic? ( generator ) do
2775+ % {
2776+ date: ~U[ 2020-05-28 02:57:19Z] ,
2777+ text: "This is an Email reminder" ,
2778+ channel: % {
2779+ address: "a" ,
2780+ valid: true ,
2781+ confirmed: true
2782+ }
2783+ }
2784+ else
2785+ % {
2786+ number: ~U[ 2020-05-28 02:57:19Z] ,
2787+ text: "This is a non polymorphic reminder" ,
2788+ channel: % {
2789+ number: "a"
2790+ }
2791+ }
2792+ end
27822793
27832794 changeset =
27842795 struct ( reminder_module )
@@ -2787,8 +2798,19 @@ defmodule PolymorphicEmbedTest do
27872798 contents =
27882799 safe_inputs_for ( changeset , :channel , generator , fn f ->
27892800 assert f . impl == Phoenix.HTML.FormData.Ecto.Changeset
2790- assert f . errors == [ ]
2791- text_input ( f , :address )
2801+
2802+ if polymorphic? ( generator ) do
2803+ assert f . errors == [
2804+ { :address ,
2805+ { "should be at least %{count} character(s)" ,
2806+ [ count: 3 , validation: :length , kind: :min , type: :string ] } }
2807+ ]
2808+
2809+ text_input ( f , :address )
2810+ else
2811+ assert f . errors == [ ]
2812+ text_input ( f , :number )
2813+ end
27922814 end )
27932815
27942816 expected_contents =
@@ -2798,7 +2820,7 @@ defmodule PolymorphicEmbedTest do
27982820 <input id="reminder_channel_address" name="reminder[channel][address]" type="text" value="a">
27992821 """ ,
28002822 else: ~s"""
2801- <input id="reminder_channel_address " name="reminder[channel][address ]" type="text" value="a">
2823+ <input id="reminder_channel_number " name="reminder[channel][number ]" type="text" value="a">
28022824 """
28032825 )
28042826
@@ -2811,7 +2833,12 @@ defmodule PolymorphicEmbedTest do
28112833 generator ,
28122834 fn f ->
28132835 assert f . impl == Phoenix.HTML.FormData.Ecto.Changeset
2814- text_input ( f , :address )
2836+
2837+ if polymorphic? ( generator ) do
2838+ text_input ( f , :address )
2839+ else
2840+ text_input ( f , :number )
2841+ end
28152842 end
28162843 )
28172844
@@ -2822,7 +2849,7 @@ defmodule PolymorphicEmbedTest do
28222849 <input id="reminder_channel_address" name="reminder[channel][address]" type="text" value="a">
28232850 """ ,
28242851 else: ~s"""
2825- <input id="reminder_channel_address " name="reminder[channel][address ]" type="text" value="a">
2852+ <input id="reminder_channel_number " name="reminder[channel][number ]" type="text" value="a">
28262853 """
28272854 )
28282855
0 commit comments