diff --git a/app/models/fund_request.rb b/app/models/fund_request.rb
index b76212bbdc..e281fb2722 100644
--- a/app/models/fund_request.rb
+++ b/app/models/fund_request.rb
@@ -1,4 +1,5 @@
class FundRequest < ApplicationRecord
+ validates :submitter_email, presence: true
end
# == Schema Information
diff --git a/app/views/fund_requests/new.html.erb b/app/views/fund_requests/new.html.erb
index bb076fa117..7ed36397bd 100644
--- a/app/views/fund_requests/new.html.erb
+++ b/app/views/fund_requests/new.html.erb
@@ -11,9 +11,16 @@
<%= form_with(model: @fund_request, local: true, url: casa_case_fund_request_path(@casa_case), method: :post) do |form| %>
+
+ <% if @fund_request.errors.any? %>
+ <% @fund_request.errors.full_messages.each do |msg| %>
+
<%= msg %>
+ <% end %>
+ <% end %>
+
- <%= form.label :submitter_email, "Your email" %>
- <%= form.text_field :submitter_email, class: "form-control", required: true, value: current_user.email %>
+ <%= form.label :submitter_email, "Your email" %>
+ <%= form.email_field :submitter_email, class: "form-control", required: false, value: current_user.email %>
diff --git a/spec/models/fund_request_spec.rb b/spec/models/fund_request_spec.rb
new file mode 100644
index 0000000000..082f6ca7d5
--- /dev/null
+++ b/spec/models/fund_request_spec.rb
@@ -0,0 +1,5 @@
+require "rails_helper"
+
+RSpec.describe FundRequest, type: :model do
+ it { is_expected.to validate_presence_of(:submitter_email) }
+end
diff --git a/spec/system/casa_cases/fund_requests/new_spec.rb b/spec/system/casa_cases/fund_requests/new_spec.rb
index 21a00c9d99..e247264b0d 100644
--- a/spec/system/casa_cases/fund_requests/new_spec.rb
+++ b/spec/system/casa_cases/fund_requests/new_spec.rb
@@ -1,14 +1,16 @@
require "rails_helper"
-RSpec.describe "casa_cases/fund_requests/new", type: :system do
- it "creates a fund request for the casa case" do
- org = create(:casa_org)
- volunteer = create(:volunteer, :with_casa_cases, casa_org: org)
- casa_case = volunteer.casa_cases.first
+RSpec.describe "fund_requests/new", type: :system do
+ let(:org) { create(:casa_org) }
+ let(:volunteer) { create(:volunteer, :with_casa_cases, casa_org: org) }
+ let(:casa_case) { volunteer.casa_cases.first }
+ before do
sign_in volunteer
visit new_casa_case_fund_request_path(casa_case)
+ end
+ it "creates a fund request for the casa case" do
aggregate_failures do
expect(page).to have_field "Your email", with: volunteer.email
expect(page).to have_field "Name or case number of youth", with: casa_case.case_number
@@ -43,4 +45,18 @@
expect(fr.youth_name).to eq casa_case.case_number
end
end
+
+ it "shows error when submitter email is blank" do
+ fill_in "Your email", with: ""
+ fill_in "Amount of payment", with: "100"
+ fill_in "Deadline", with: "2022-12-31"
+ fill_in "Request is for", with: "Fun outing"
+ fill_in "Name of payee", with: "Minnie Mouse"
+
+ expect {
+ click_on "Submit Fund Request"
+ }.not_to change(FundRequest, :count)
+
+ expect(page).to have_content("Submitter email can't be blank")
+ end
end