diff --git a/app/views/partners/edit/_agency_distribution_information.html.erb b/app/views/partners/edit/_agency_distribution_information.html.erb
new file mode 100644
index 00000000..d454a36f
--- /dev/null
+++ b/app/views/partners/edit/_agency_distribution_information.html.erb
@@ -0,0 +1,25 @@
+
+
Agency Distribution Information
+
+
diff --git a/app/views/partners/edit/_agency_information.html.erb b/app/views/partners/edit/_agency_information.html.erb
new file mode 100644
index 00000000..04ec8efb
--- /dev/null
+++ b/app/views/partners/edit/_agency_information.html.erb
@@ -0,0 +1,75 @@
+
diff --git a/app/views/partners/edit/_agency_stability.html.erb b/app/views/partners/edit/_agency_stability.html.erb
new file mode 100644
index 00000000..12a31c99
--- /dev/null
+++ b/app/views/partners/edit/_agency_stability.html.erb
@@ -0,0 +1,136 @@
+
+
diff --git a/app/views/partners/edit/_attached_documents.html.erb b/app/views/partners/edit/_attached_documents.html.erb
new file mode 100644
index 00000000..a6459c59
--- /dev/null
+++ b/app/views/partners/edit/_attached_documents.html.erb
@@ -0,0 +1,26 @@
+
+
Additional Documents
+
+
diff --git a/app/views/partners/edit/_diaper_pick_up_person.html.erb b/app/views/partners/edit/_diaper_pick_up_person.html.erb
new file mode 100644
index 00000000..3757a799
--- /dev/null
+++ b/app/views/partners/edit/_diaper_pick_up_person.html.erb
@@ -0,0 +1,31 @@
+
+
Diaper Pick Up Person
+
+
diff --git a/app/views/partners/edit/_executive_director.html.erb b/app/views/partners/edit/_executive_director.html.erb
new file mode 100644
index 00000000..06e28674
--- /dev/null
+++ b/app/views/partners/edit/_executive_director.html.erb
@@ -0,0 +1,56 @@
+
+
diff --git a/app/views/partners/edit/_media_information.html.erb b/app/views/partners/edit/_media_information.html.erb
new file mode 100644
index 00000000..fce58b1f
--- /dev/null
+++ b/app/views/partners/edit/_media_information.html.erb
@@ -0,0 +1,25 @@
+
diff --git a/app/views/partners/edit/_organizational_capacity.html.erb b/app/views/partners/edit/_organizational_capacity.html.erb
new file mode 100644
index 00000000..241d98e1
--- /dev/null
+++ b/app/views/partners/edit/_organizational_capacity.html.erb
@@ -0,0 +1,43 @@
+
+
Organization Capacity
+
+
diff --git a/app/views/partners/edit/_population_served.html.erb b/app/views/partners/edit/_population_served.html.erb
new file mode 100644
index 00000000..2750735f
--- /dev/null
+++ b/app/views/partners/edit/_population_served.html.erb
@@ -0,0 +1,124 @@
+
diff --git a/app/views/partners/edit/_sources_of_funding.html.erb b/app/views/partners/edit/_sources_of_funding.html.erb
new file mode 100644
index 00000000..bfad9827
--- /dev/null
+++ b/app/views/partners/edit/_sources_of_funding.html.erb
@@ -0,0 +1,31 @@
+
diff --git a/app/views/partners/show.html.erb b/app/views/partners/show.html.erb
index 304da557..0d995d91 100644
--- a/app/views/partners/show.html.erb
+++ b/app/views/partners/show.html.erb
@@ -15,316 +15,13 @@
-
-
-
-
- - Name
- - <%= @partner.name %>
-
- - Agency Type
- - <%= @partner.agency_type %>
-
- <% if @partner.agency_type == "Other" %>
- - Other Agency Type
- - <%= @partner.other_agency_type %>
- <% end %>
-
- - Status
- - <%= @partner.partner_status.humanize %>
-
- - 501(c)(3) IRS Determination Letter
- <% if @partner.proof_of_partner_status.attached? %>
- - Attached
- file: <%= link_to @partner.proof_of_partner_status.blob['filename'], rails_blob_path(@partner.proof_of_partner_status), class: "font-weight-bold" %>
- <% else %>
- - Documentation not on file
- <% end %>
-
- - Description of Agency Mission
- - <%= @partner.agency_mission %>
-
-
- Address
- <%= @partner.address1 %>
- <% unless @partner.address2.blank? %>
- <%= @partner.address2 %>
- <% end %>
- <%= @partner.city %> <%= @partner.state %>
- <%= @partner.zip_code %>
-
-
-
-
-
-
-
-
-
- - Website
- - <%= @partner.website %>
-
- - Facebook
- - <%= @partner.facebook %>
-
- - Twitter
- - <%= @partner.twitter %>
-
-
-
-
-
-
-
-
- - Year Founded
- - <%= @partner.founded %>
-
- - Form 990 Filed
- - <%= humanize_boolean(@partner.form_990) %>
-
- - Form 990
- <% if @partner.proof_of_form_990.attached? %>
- - Attached
- file: <%= link_to @partner.proof_of_form_990.blob['filename'], rails_blob_path(@partner.proof_of_form_990), class: "font-weight-bold" %>
- <% else %>
- - Form 990 not on file
- <% end %>
-
- - Program Name
- - <%= @partner.program_name %>
-
- - Program Description
- - <%= @partner.program_description %>
-
- - Agency Age
- - <%= @partner.program_age %>
-
- - Case Management
- - <%= humanize_boolean(@partner.case_management) %>
-
- - Evidence Based
- - <%= humanize_boolean(@partner.evidence_based) %>
-
- - Evidence Base Description
- - <%= @partner.evidence_based_description %>
-
- - Verified Successes of Program
- - <%= @partner.program_client_improvement %>
-
- - Diaper Use
- - <%= @partner.diaper_use %>
-
- - Do You Receive Diapers From Other Sources
- - <%= @partner.other_diaper_use %>
-
- - Current Providing Diapers
- - <%= humanize_boolean(@partner.currently_provide_diapers) %>
-
- - Turn Away Child Care
- - <%= humanize_boolean(@partner.turn_away_child_care) %>
-
-
- Program Address
- <%= @partner.program_address1 %>
- <% unless @partner.program_address2.blank? %>
- <%= @partner.program_address2 %>
- <% end %>
- <%= @partner.program_city %> <%= @partner.program_state %>
- <%= @partner.program_zip_code %>
-
-
-
-
-
-
-
-
- - Max Serve
- - <%= @partner.max_serve %>
-
- - Incorporate Plan
- - <%= @partner.incorporate_plan %>
-
- - Responsible Staff Position
- - <%= humanize_boolean(@partner.responsible_staff_position) %>
-
- - Storage Space
- - <%= humanize_boolean(@partner.storage_space) %>
-
- - Storage Space Description
- - <%= @partner.describe_storage_space %>
-
-
-
-
-
-
-
- - Sources of Funding
- - <%= @partner.sources_of_funding %>
-
- - How do you currently obtain diapers?
- - <%= @partner.sources_of_diapers %>
-
- - Diaper Budget
- - <%= @partner.diaper_budget %>
-
- - Diaper Funding Source
- - <%= @partner.diaper_funding_source %>
-
-
-
+ <%= render "partners/show/agency_information" %>
-
-
-
-
-
-
-
- - Clients Have An Income Requirement to Work With You
- - <%= humanize_boolean(@partner.income_requirement_desc) %>
-
- - Serve Income Circumstances
- - <%= humanize_boolean(@partner.serve_income_circumstances) %>
-
- - Do You Verify The Income Of Your Clients
- - <%= humanize_boolean(@partner.income_verification) %>
-
- - Internal DB
- - <%= humanize_boolean(@partner.internal_db) %>
-
- - MAAC Program Participant
- <%= humanize_boolean(@partner.maac) %>
-
- Ethnic Composition of Those Served
- - African American
- - <%= @partner.population_black || t(:not_provided) %>
-
- - Caucasian
- - <%= @partner.population_white || t(:not_provided) %>
-
- - Hispanic
- - <%= @partner.population_hispanic || t(:not_provided) %>
-
- - Asian
- - <%= @partner.population_asian || t(:not_provided) %>
-
- - American Indian
- - <%= @partner.population_american_indian || t(:not_provided) %>
-
- - Pacific Islander
- - <%= @partner.population_island || t(:not_provided) %>
-
- - Multi-racial
- - <%= @partner.population_multi_racial || t(:not_provided) %>
-
- - Other
- - <%= @partner.population_other || t(:not_provided) %>
-
- - Zip Codes Served
- - <%= @partner.zips_served %>
-
- Poverty Information of Those Served
- - At FPL or below
- - <%= @partner.at_fpl_or_below || t(:not_provided) %>
-
- - Above 1-2 times FPL
- - <%= @partner.above_1_2_times_fpl || t(:not_provided) %>
-
- - Greater than 2 times FPL
- - <%= @partner.greater_2_times_fpl || t(:not_provided) %>
-
- - Poverty Unknown
- - <%= @partner.poverty_unknown || t(:not_provided) %>
-
- Ages Served
- - Ages
- - <%= @partner.ages_served || t(:not_provided) %>
-
-
+ <% @partner.partials_to_show.each do |partial| %>
+
+ <%= render "partners/show/#{partial}" %>
-
-
-
-
-
- - Name
- - <%= @partner.executive_director_name %>
-
- - Phone Number
- - <%= @partner.executive_director_phone %>
-
- - Email
- - <%= @partner.executive_director_email %>
-
-
-
Program Contact Person
-
- - Name
- - <%= @partner.program_contact_name %>
-
- - Phone Number
- - <%= @partner.program_contact_phone %>
-
- - Mobile Phone Number
- - <%= @partner.program_contact_mobile %>
-
- - Email
- - <%= @partner.program_contact_email %>
-
-
-
-
-
-
-
-
- - Pick Up Method
- - <%= @partner.pick_up_method %>
-
- - Name
- - <%= @partner.pick_up_name %>
-
- - Phone
- - <%= @partner.pick_up_phone %>
-
- - Email
- - <%= @partner.pick_up_email %>
-
-
-
-
-
-
-
-
- - Distribution Times
- - <%= @partner.distribution_times %>
-
- - New Client Times
- - <%= @partner.new_client_times %>
-
- - More Docs Required
- - <%= @partner.more_docs_required %>
-
-
-
-
-
-
-
- <% if @partner.documents.attached? %>
-
Attached files:
- <% @partner.documents.each do |doc| %>
- <%= link_to doc.blob['filename'], rails_blob_path(doc), class: "font-weight-bold" %>
- <% end %>
- <% else %>
- No files saved
- <% end %>
-
-
-
+ <% end %>
diff --git a/app/views/partners/show/_agency_distribution_information.html.erb b/app/views/partners/show/_agency_distribution_information.html.erb
new file mode 100644
index 00000000..cbdb1fd2
--- /dev/null
+++ b/app/views/partners/show/_agency_distribution_information.html.erb
@@ -0,0 +1,15 @@
+
+
+
+
+ - Distribution Times
+ - <%= @partner.distribution_times %>
+
+ - New Client Times
+ - <%= @partner.new_client_times %>
+
+ - More Docs Required
+ - <%= @partner.more_docs_required %>
+
+
+
diff --git a/app/views/partners/show/_agency_information.html.erb b/app/views/partners/show/_agency_information.html.erb
new file mode 100644
index 00000000..4f80732b
--- /dev/null
+++ b/app/views/partners/show/_agency_information.html.erb
@@ -0,0 +1,41 @@
+
+
+
+
+ - Name
+ - <%= @partner.name %>
+
+ - Agency Type
+ - <%= @partner.agency_type %>
+
+ <% if @partner.agency_type == "Other" %>
+ - Other Agency Type
+ - <%= @partner.other_agency_type %>
+ <% end %>
+
+ - Status
+ - <%= @partner.partner_status.humanize %>
+
+ - 501(c)(3) IRS Determination Letter
+ <% if @partner.proof_of_partner_status.attached? %>
+ - Attached
+ file: <%= link_to @partner.proof_of_partner_status.blob['filename'], rails_blob_path(@partner.proof_of_partner_status), class: "font-weight-bold" %>
+ <% else %>
+ - Documentation not on file
+ <% end %>
+
+ - Description of Agency Mission
+ - <%= @partner.agency_mission %>
+
+
+ Address
+ <%= @partner.address1 %>
+ <% unless @partner.address2.blank? %>
+ <%= @partner.address2 %>
+ <% end %>
+ <%= @partner.city %> <%= @partner.state %>
+ <%= @partner.zip_code %>
+
+
+
+
diff --git a/app/views/partners/show/_agency_stability.html.erb b/app/views/partners/show/_agency_stability.html.erb
new file mode 100644
index 00000000..7317a630
--- /dev/null
+++ b/app/views/partners/show/_agency_stability.html.erb
@@ -0,0 +1,63 @@
+
+
+
+
+ - Year Founded
+ - <%= @partner.founded %>
+
+ - Form 990 Filed
+ - <%= humanize_boolean(@partner.form_990) %>
+
+ - Form 990
+ <% if @partner.proof_of_form_990.attached? %>
+ - Attached
+ file: <%= link_to @partner.proof_of_form_990.blob['filename'], rails_blob_path(@partner.proof_of_form_990), class: "font-weight-bold" %>
+ <% else %>
+ - Form 990 not on file
+ <% end %>
+
+ - Program Name
+ - <%= @partner.program_name %>
+
+ - Program Description
+ - <%= @partner.program_description %>
+
+ - Agency Age
+ - <%= @partner.program_age %>
+
+ - Case Management
+ - <%= humanize_boolean(@partner.case_management) %>
+
+ - Evidence Based
+ - <%= humanize_boolean(@partner.evidence_based) %>
+
+ - Evidence Base Description
+ - <%= @partner.evidence_based_description %>
+
+ - Verified Successes of Program
+ - <%= @partner.program_client_improvement %>
+
+ - Diaper Use
+ - <%= @partner.diaper_use %>
+
+ - Do You Receive Diapers From Other Sources
+ - <%= @partner.other_diaper_use %>
+
+ - Current Providing Diapers
+ - <%= humanize_boolean(@partner.currently_provide_diapers) %>
+
+ - Turn Away Child Care
+ - <%= humanize_boolean(@partner.turn_away_child_care) %>
+
+
+ Program Address
+ <%= @partner.program_address1 %>
+ <% unless @partner.program_address2.blank? %>
+ <%= @partner.program_address2 %>
+ <% end %>
+ <%= @partner.program_city %> <%= @partner.program_state %>
+ <%= @partner.program_zip_code %>
+
+
+
+
diff --git a/app/views/partners/show/_attached_documents.html.erb b/app/views/partners/show/_attached_documents.html.erb
new file mode 100644
index 00000000..ab05061f
--- /dev/null
+++ b/app/views/partners/show/_attached_documents.html.erb
@@ -0,0 +1,13 @@
+
+
+
+ <% if @partner.documents.attached? %>
+
Attached files:
+ <% @partner.documents.each do |doc| %>
+ <%= link_to doc.blob['filename'], rails_blob_path(doc), class: "font-weight-bold" %>
+ <% end %>
+ <% else %>
+ No files saved
+ <% end %>
+
+
diff --git a/app/views/partners/show/_diaper_pick_up_person.html.erb b/app/views/partners/show/_diaper_pick_up_person.html.erb
new file mode 100644
index 00000000..5654dbd4
--- /dev/null
+++ b/app/views/partners/show/_diaper_pick_up_person.html.erb
@@ -0,0 +1,18 @@
+
+
+
+
+ - Pick Up Method
+ - <%= @partner.pick_up_method %>
+
+ - Name
+ - <%= @partner.pick_up_name %>
+
+ - Phone
+ - <%= @partner.pick_up_phone %>
+
+ - Email
+ - <%= @partner.pick_up_email %>
+
+
+
diff --git a/app/views/partners/show/_executive_director.html.erb b/app/views/partners/show/_executive_director.html.erb
new file mode 100644
index 00000000..6e9536d0
--- /dev/null
+++ b/app/views/partners/show/_executive_director.html.erb
@@ -0,0 +1,30 @@
+
+
+
+
+ - Name
+ - <%= @partner.executive_director_name %>
+
+ - Phone Number
+ - <%= @partner.executive_director_phone %>
+
+ - Email
+ - <%= @partner.executive_director_email %>
+
+
+
Program Contact Person
+
+ - Name
+ - <%= @partner.program_contact_name %>
+
+ - Phone Number
+ - <%= @partner.program_contact_phone %>
+
+ - Mobile Phone Number
+ - <%= @partner.program_contact_mobile %>
+
+ - Email
+ - <%= @partner.program_contact_email %>
+
+
+
diff --git a/app/views/partners/show/_media_information.html.erb b/app/views/partners/show/_media_information.html.erb
new file mode 100644
index 00000000..cd058fa3
--- /dev/null
+++ b/app/views/partners/show/_media_information.html.erb
@@ -0,0 +1,15 @@
+
+
+
+
+ - Website
+ - <%= @partner.website %>
+
+ - Facebook
+ - <%= @partner.facebook %>
+
+ - Twitter
+ - <%= @partner.twitter %>
+
+
+
diff --git a/app/views/partners/show/_organizational_capacity.html.erb b/app/views/partners/show/_organizational_capacity.html.erb
new file mode 100644
index 00000000..29c8d4b3
--- /dev/null
+++ b/app/views/partners/show/_organizational_capacity.html.erb
@@ -0,0 +1,21 @@
+
+
+
+
+ - Max Serve
+ - <%= @partner.max_serve %>
+
+ - Incorporate Plan
+ - <%= @partner.incorporate_plan %>
+
+ - Responsible Staff Position
+ - <%= humanize_boolean(@partner.responsible_staff_position) %>
+
+ - Storage Space
+ - <%= humanize_boolean(@partner.storage_space) %>
+
+ - Storage Space Description
+ - <%= @partner.describe_storage_space %>
+
+
+
diff --git a/app/views/partners/show/_population_served.html.erb b/app/views/partners/show/_population_served.html.erb
new file mode 100644
index 00000000..6ad9c157
--- /dev/null
+++ b/app/views/partners/show/_population_served.html.erb
@@ -0,0 +1,65 @@
+
+
+
+
+ - Clients Have An Income Requirement to Work With You
+ - <%= humanize_boolean(@partner.income_requirement_desc) %>
+
+ - Serve Income Circumstances
+ - <%= humanize_boolean(@partner.serve_income_circumstances) %>
+
+ - Do You Verify The Income Of Your Clients
+ - <%= humanize_boolean(@partner.income_verification) %>
+
+ - Internal DB
+ - <%= humanize_boolean(@partner.internal_db) %>
+
+ - MAAC Program Participant
- <%= humanize_boolean(@partner.maac) %>
+
+ Ethnic Composition of Those Served
+ - African American
+ - <%= @partner.population_black || t(:not_provided) %>
+
+ - Caucasian
+ - <%= @partner.population_white || t(:not_provided) %>
+
+ - Hispanic
+ - <%= @partner.population_hispanic || t(:not_provided) %>
+
+ - Asian
+ - <%= @partner.population_asian || t(:not_provided) %>
+
+ - American Indian
+ - <%= @partner.population_american_indian || t(:not_provided) %>
+
+ - Pacific Islander
+ - <%= @partner.population_island || t(:not_provided) %>
+
+ - Multi-racial
+ - <%= @partner.population_multi_racial || t(:not_provided) %>
+
+ - Other
+ - <%= @partner.population_other || t(:not_provided) %>
+
+ - Zip Codes Served
+ - <%= @partner.zips_served %>
+
+ Poverty Information of Those Served
+ - At FPL or below
+ - <%= @partner.at_fpl_or_below || t(:not_provided) %>
+
+ - Above 1-2 times FPL
+ - <%= @partner.above_1_2_times_fpl || t(:not_provided) %>
+
+ - Greater than 2 times FPL
+ - <%= @partner.greater_2_times_fpl || t(:not_provided) %>
+
+ - Poverty Unknown
+ - <%= @partner.poverty_unknown || t(:not_provided) %>
+
+ Ages Served
+ - Ages
+ - <%= @partner.ages_served || t(:not_provided) %>
+
+
+
diff --git a/app/views/partners/show/_sources_of_funding.html.erb b/app/views/partners/show/_sources_of_funding.html.erb
new file mode 100644
index 00000000..249ae69d
--- /dev/null
+++ b/app/views/partners/show/_sources_of_funding.html.erb
@@ -0,0 +1,18 @@
+
+
+
+
+ - Sources of Funding
+ - <%= @partner.sources_of_funding %>
+
+ - How do you currently obtain diapers?
+ - <%= @partner.sources_of_diapers %>
+
+ - Diaper Budget
+ - <%= @partner.diaper_budget %>
+
+ - Diaper Funding Source
+ - <%= @partner.diaper_funding_source %>
+
+
+
diff --git a/config/routes.rb b/config/routes.rb
index 071dfad3..db571b05 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -63,6 +63,7 @@
namespace :v1 do
resources :partners, only: [:create, :show, :update]
resources :add_partners, only: [:create]
+ resources :partner_forms, only: [:create]
end
end
diff --git a/db/migrate/20200404230645_create_partner_forms.rb b/db/migrate/20200404230645_create_partner_forms.rb
new file mode 100644
index 00000000..a1fa53cd
--- /dev/null
+++ b/db/migrate/20200404230645_create_partner_forms.rb
@@ -0,0 +1,10 @@
+class CreatePartnerForms < ActiveRecord::Migration[5.2]
+ def change
+ create_table :partner_forms do |t|
+ t.integer :diaper_bank_id
+ t.text :sections, array: true, default: []
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 6cd90511..1ee1c650 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2019_10_25_144701) do
+ActiveRecord::Schema.define(version: 2020_04_04_230645) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -131,6 +131,13 @@
t.index ["partner_request_id"], name: "index_item_requests_on_partner_request_id"
end
+ create_table "partner_forms", force: :cascade do |t|
+ t.integer "diaper_bank_id"
+ t.text "sections", default: [], array: true
+ t.datetime "created_at", null: false
+ t.datetime "updated_at", null: false
+ end
+
create_table "partner_requests", force: :cascade do |t|
t.text "comments"
t.bigint "partner_id"
diff --git a/spec/factories/partner_form.rb b/spec/factories/partner_form.rb
new file mode 100644
index 00000000..db442c8c
--- /dev/null
+++ b/spec/factories/partner_form.rb
@@ -0,0 +1,6 @@
+FactoryBot.define do
+ factory :partner_form do
+ diaper_bank_id { 1 }
+ sections { "MyString" }
+ end
+end
diff --git a/spec/features/partner_edit_feature_spec.rb b/spec/features/partner_edit_feature_spec.rb
index 4eed1b11..4cd12d56 100644
--- a/spec/features/partner_edit_feature_spec.rb
+++ b/spec/features/partner_edit_feature_spec.rb
@@ -9,6 +9,21 @@
visit "/partners/#{partner.id}/edit"
end
+ scenario "when there are partner form sections set on the partner" do
+ FactoryBot.create(:partner_form, diaper_bank_id: partner.id, sections: ["agency_information"])
+
+ visit "/partners/#{partner.id}/edit"
+ aggregate_failures do
+ expect(page).to have_content("Agency Information")
+ expect(page).to_not have_content("Agency Stability")
+ expect(page).to_not have_content("Population Served")
+ expect(page).to_not have_content("Program Address")
+ expect(page).to_not have_content("Program Contact")
+ expect(page).to_not have_content("Sources of Funding")
+ expect(page).to_not have_content("Additional Documents")
+ end
+ end
+
scenario "partner can select and provide an Other agency type", js: true do
select "Other", from: "partner_agency_type"
fill_in "partner_other_agency_type", with: Faker::Name.name
diff --git a/spec/models/partner_form_spec.rb b/spec/models/partner_form_spec.rb
new file mode 100644
index 00000000..c5e980dc
--- /dev/null
+++ b/spec/models/partner_form_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+RSpec.describe PartnerForm, type: :model do
+ subject do
+ described_class.new(diaper_bank_id: Faker::Number.number)
+ end
+ it "is valid with valid attributes" do
+ expect(subject).to be_valid
+ end
+
+ it "is not valid without a diaper_bank_id" do
+ subject.diaper_bank_id = nil
+ expect(subject).to_not be_valid
+ end
+end
diff --git a/spec/models/partner_spec.rb b/spec/models/partner_spec.rb
index 0d5ac336..b97aa287 100644
--- a/spec/models/partner_spec.rb
+++ b/spec/models/partner_spec.rb
@@ -114,6 +114,21 @@
end
end
+ describe "#partials_to_show" do
+ let(:partner) { create(:partner, diaper_bank_id: 100) }
+
+ it 'has 9 partials when there are no displayable partials configured' do
+ expect(partner.partials_to_show).to eq(Partner::ALL_PARTIALS)
+ end
+
+ it 'displays the number of displayable partials when they are configured' do
+ partner.diaper_bank_id = 100
+ FactoryBot.create(:partner_form, diaper_bank_id: 100,
+ sections: %w[agency_information media_information agency_stability])
+ expect(partner.partials_to_show.size).to eq(3)
+ end
+ end
+
describe "verified?" do
context "partner with a verfied status" do
it "returns a partner verified status as true" do
diff --git a/spec/requests/api/v1/partner_forms_requests_spec.rb b/spec/requests/api/v1/partner_forms_requests_spec.rb
new file mode 100644
index 00000000..7f1d41ca
--- /dev/null
+++ b/spec/requests/api/v1/partner_forms_requests_spec.rb
@@ -0,0 +1,40 @@
+require "rails_helper"
+
+describe "Partners API Requests", type: :request do
+ describe "POST /api/v1/partners" do
+ context "when the body is empty" do
+ it "responds with an error status code" do
+ post api_v1_partners_path({})
+
+ expect(response).to have_http_status(:bad_request)
+ end
+ end
+
+ context "when given valid parameters" do
+ it "responds with an :ok status" do
+ valid_partner_form_creation_request
+
+ expect(response).to have_http_status(:ok)
+ end
+
+ it "creates a new `PartnerForm` record" do
+ expect { valid_partner_form_creation_request }
+ .to change { PartnerForm.count }
+ .from(0)
+ .to(1)
+ end
+ end
+ end
+
+ def valid_partner_form_creation_request(
+ diaper_bank_id: 1,
+ sections: %w(section1 section2 section3)
+ )
+ post api_v1_partner_forms_path(
+ partner_form: {
+ diaper_bank_id: diaper_bank_id,
+ sections: sections
+ }
+ )
+ end
+end