diff --git a/app/controllers/volunteers_controller.rb b/app/controllers/volunteers_controller.rb
index 1cb691e115..bc931d59a6 100644
--- a/app/controllers/volunteers_controller.rb
+++ b/app/controllers/volunteers_controller.rb
@@ -61,6 +61,9 @@ def edit
def update
authorize @volunteer
+
+ @volunteer.skip_reconfirmation!
+
if @volunteer.update(update_volunteer_params)
notice = check_unconfirmed_email_notice(@volunteer)
diff --git a/app/views/volunteers/edit.html.erb b/app/views/volunteers/edit.html.erb
index f99011702a..4b91c646ad 100644
--- a/app/views/volunteers/edit.html.erb
+++ b/app/views/volunteers/edit.html.erb
@@ -30,7 +30,7 @@
type: "submit",
class: "main-btn primary-btn btn-hover btn-sm my-1"
) do %>
- Submit
+ Update
<% end %>
<% end %>
diff --git a/spec/requests/volunteers_spec.rb b/spec/requests/volunteers_spec.rb
index a1586e7eb8..4159b925d2 100644
--- a/spec/requests/volunteers_spec.rb
+++ b/spec/requests/volunteers_spec.rb
@@ -239,18 +239,20 @@
expect(volunteer.phone_number).to eq "15463457898"
end
- it "sends the volunteer a confirmation email upon email change" do
+ it "updates the volunteer email without sending a confirmation email" do
+ old_email = volunteer.email
+ new_email = "newemail@example.com"
+
patch volunteer_path(volunteer), params: {
- volunteer: {email: "newemail@gmail.com"}
+ volunteer: {email: new_email}
}
expect(response).to have_http_status(:redirect)
volunteer.reload
- expect(volunteer.unconfirmed_email).to eq("newemail@gmail.com")
- expect(ActionMailer::Base.deliveries.count).to eq(1)
- expect(ActionMailer::Base.deliveries.first).to be_a(Mail::Message)
- expect(ActionMailer::Base.deliveries.first.body.encoded)
- .to match("You can confirm your account email through the link below:")
+
+ expect(volunteer.email).to eq(new_email)
+ expect(volunteer.old_emails).to eq([old_email])
+ expect(volunteer.unconfirmed_email).to eq(nil)
end
end
diff --git a/spec/system/volunteers/edit_spec.rb b/spec/system/volunteers/edit_spec.rb
index 5cc016aa7c..33777935c7 100644
--- a/spec/system/volunteers/edit_spec.rb
+++ b/spec/system/volunteers/edit_spec.rb
@@ -14,7 +14,7 @@
fill_in "volunteer_display_name", with: "Kamisato Ayato"
fill_in "volunteer_phone_number", with: "+14163248967"
fill_in "volunteer_date_of_birth", with: Date.new(1998, 7, 1)
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Volunteer was successfully updated."
end
@@ -31,7 +31,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_phone_number", with: "+141632489"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Phone number must be 10 digits or 12 digits including country code (+1)"
end
@@ -44,7 +44,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_phone_number", with: "+141632180923"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Phone number must be 10 digits or 12 digits including country code (+1)"
end
@@ -58,7 +58,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_phone_number", with: "+141632u809o"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Phone number must be 10 digits or 12 digits including country code (+1)"
end
@@ -72,7 +72,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_phone_number", with: "+24163218092"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Phone number must be 10 digits or 12 digits including country code (+1)"
end
@@ -86,7 +86,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_date_of_birth", with: 5.days.from_now
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Date of birth must be in the past."
end
@@ -104,7 +104,7 @@
fill_in "volunteer_display_name", with: "Kamisato Ayato"
fill_in "volunteer_email", with: admin.email
fill_in "volunteer_display_name", with: "Mickey Mouse"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "already been taken"
end
@@ -120,7 +120,7 @@
fill_in "volunteer_email", with: ""
fill_in "volunteer_display_name", with: ""
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "can't be blank"
end
@@ -129,48 +129,27 @@
describe "updating a volunteer's email" do
context "with a valid email" do
- it "sends volunteer a confirmation email and does not change the displayed email" do
+ it "updates volunteer email without sending a confirmaiton email" do
organization = create(:casa_org)
admin = create(:casa_admin, casa_org: organization)
volunteer = create(:volunteer, :with_assigned_supervisor, casa_org: organization)
- old_email = volunteer.email
-
- sign_in admin
- visit edit_volunteer_path(volunteer)
-
- fill_in "Email", with: "newemail@example.com"
- click_on "Submit"
- volunteer.reload
-
- expect(ActionMailer::Base.deliveries.count).to eq(1)
- expect(ActionMailer::Base.deliveries.first).to be_a(Mail::Message)
- expect(ActionMailer::Base.deliveries.first.body.encoded)
- .to match("You can confirm your account email through the link below:")
-
- expect(page).to have_text "Volunteer was successfully updated. Confirmation Email Sent."
- expect(page).to have_field("Email", with: old_email)
- expect(volunteer.unconfirmed_email).to eq("newemail@example.com")
- end
- it "succesfully displays the new email once the user confirms" do
- organization = create(:casa_org)
- admin = create(:casa_admin, casa_org: organization)
- volunteer = create(:volunteer, :with_assigned_supervisor, casa_org: organization)
old_email = volunteer.email
+ new_email = "newemail@example.com"
sign_in admin
visit edit_volunteer_path(volunteer)
- fill_in "Email", with: "newemail@example.com"
- click_on "Submit"
- volunteer.reload
- volunteer.confirm
+ fill_in "Email", with: new_email
+ click_on "Update"
- visit edit_volunteer_path(volunteer)
+ volunteer.reload
- expect(page).to have_field("Email", with: "newemail@example.com")
- expect(page).not_to have_field("Email", with: old_email)
+ expect(page).to have_text "Volunteer was successfully updated."
+ expect(page).to have_field("Email", with: new_email)
+ expect(volunteer.email).to eq(new_email)
expect(volunteer.old_emails).to eq([old_email])
+ expect(volunteer.unconfirmed_email).to eq(nil)
end
end
end
@@ -734,7 +713,7 @@
visit edit_volunteer_path(volunteer)
fill_in "volunteer_address_attributes_content", with: "123 Main St"
- click_on "Submit"
+ click_on "Update"
expect(page).to have_text "Volunteer was successfully updated."
expect(page).to have_selector("input[value='123 Main St']")
end