Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/models/fund_request.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class FundRequest < ApplicationRecord
validates :submitter_email, presence: true
end

# == Schema Information
Expand Down
11 changes: 9 additions & 2 deletions app/views/fund_requests/new.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,16 @@
<!-- ========== card start ========== -->
<div class="card-style mb-50">
<%= 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| %>
<p><%= msg %></p>
<% end %>
<% end %>

<div class="input-style-1">
<%= 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 %>
</div>

<div class="input-style-1">
Expand Down
5 changes: 5 additions & 0 deletions spec/models/fund_request_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
require "rails_helper"

RSpec.describe FundRequest, type: :model do
it { is_expected.to validate_presence_of(:submitter_email) }
end
26 changes: 21 additions & 5 deletions spec/system/casa_cases/fund_requests/new_spec.rb
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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
Loading