File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -174,13 +174,23 @@ def parent
174174 parent . phone = parent_phone
175175 parent . phone_receive_updates = parent_phone_receive_updates
176176
177- parent
178- . parent_relationships
179- . find_or_initialize_by ( patient :)
180- . assign_attributes (
181- type : parent_relationship_type ,
182- other_name : parent_relationship_other_name
183- )
177+ # We can't use find_or_initialize_by here because we need the object to
178+ # remain attached to the parent so we can save the parent with its
179+ # relationships.
180+
181+ parent_relationship =
182+ parent . parent_relationships . find { it . patient_id == patient_id } ||
183+ parent . parent_relationships . build ( patient_id :)
184+
185+ parent_relationship . assign_attributes (
186+ patient :, # acts as preload
187+ type : parent_relationship_type ,
188+ other_name : parent_relationship_other_name
189+ )
190+
191+ if parent_relationship . new_record?
192+ parent . parent_relationships << parent_relationship
193+ end
184194
185195 parent
186196 end
Original file line number Diff line number Diff line change 1818 relationship : "Dad"
1919 )
2020 then_i_see_the_confirmation_page
21+
22+ when_i_confirm_the_consent
23+ and_i_click_on_the_patient
24+ then_i_see_the_new_parent_details
2125 end
2226
2327 def given_a_patient_is_in_an_hpv_programme
@@ -84,4 +88,17 @@ def then_i_see_the_confirmation_page
8488 def when_i_click_on_change_name
8589 click_link "Change name"
8690 end
91+
92+ def when_i_confirm_the_consent
93+ click_button "Confirm"
94+ end
95+
96+ def and_i_click_on_the_patient
97+ click_link @patient . full_name , match : :first
98+ end
99+
100+ def then_i_see_the_new_parent_details
101+ expect ( page ) . to have_content ( "New parent name" )
102+ expect ( page ) . to have_content ( "Dad" )
103+ end
87104end
You can’t perform that action at this time.
0 commit comments