Skip to content

Commit

Permalink
class Partner :has_many :users
Browse files Browse the repository at this point in the history
And fix all the tests
  • Loading branch information
benreyn committed Oct 23, 2019
1 parent 063d6b0 commit 9eb41bd
Show file tree
Hide file tree
Showing 6 changed files with 17 additions and 13 deletions.
4 changes: 3 additions & 1 deletion app/controllers/api/v1/partners_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,9 @@ def update
partner.update(partner_status: "pending")
elsif partner_params[:status] == "recertification_required"
partner.update(partner_status: "recertification_required")
RecertificationMailer.with(partner: partner).notice_email.deliver_now
partner.users.each do |user|
RecertificationMailer.notice_email(user).deliver_later
end
elsif partner_params[:status] == "approved"
partner.update(partner_status: "verified")
else
Expand Down
6 changes: 3 additions & 3 deletions app/mailers/recertification_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ class RecertificationMailer < ActionMailer::Base
default from: "[email protected]"
layout "mailer"

def notice_email
@partner = params[:partner]
def notice_email(user)
@partner = user.partner

mail to: @partner.email,
mail to: user.email,
subject: "Please update your agency information"
end
end
2 changes: 1 addition & 1 deletion app/models/partner.rb
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@
class Partner < ApplicationRecord
include DiaperBankClient

has_one :user, dependent: :destroy
has_many :users, dependent: :destroy
has_one_attached :proof_of_partner_status
has_one_attached :proof_of_form_990
has_many_attached :documents
Expand Down
8 changes: 4 additions & 4 deletions spec/mailers/recertification_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
describe RecertificationMailer, type: :mailer do
describe "notice_email" do
let!(:user) { create(:user) }
let!(:partner) { create(:partner, user: user) }
let!(:mail) { RecertificationMailer.with(partner: partner).notice_email.deliver_now }
let!(:partner) { create(:partner) }
let!(:user) { create(:user, partner: partner) }
let!(:mail) { RecertificationMailer.notice_email(user).deliver_now }

it "email renders the subject" do
expect(mail.subject).to eq("Please update your agency information")
end

it "email renders the receiver email" do
expect(mail.to).to eq([partner.user.email])
expect(mail.to).to eq([user.email])
end

it "email renders the sender email" do
Expand Down
2 changes: 1 addition & 1 deletion spec/models/partner_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@

describe Partner, type: :model, include_shared: true do
it { is_expected.to have_many(:partner_requests).dependent(:destroy) }
it { is_expected.to have_one(:user).dependent(:destroy) }
it { is_expected.to have_many(:users).dependent(:destroy) }

describe "#approve_me" do
let(:partner) { create(:partner) }
Expand Down
8 changes: 5 additions & 3 deletions spec/requests/api/v1/partners_requests_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,8 @@
end

context "when we set the partner to recertification_required" do
let(:user) { create(:user) }
let(:partner) { create(:partner, user: user) }
let(:partner) { create(:partner) }
let(:user) { create(:user, partner: partner) }
let(:params) { { partner: { diaper_partner_id: partner.diaper_bank_id, status: "recertification_required" } } }

it "returns OK" do
Expand All @@ -87,7 +87,9 @@
end

it "emails a notification" do
expect { valid_partner_update_request(params, headers) }.to change { ActionMailer::Base.deliveries.count }.by(1)
allow(RecertificationMailer).to receive(:notice_email).with(user)
valid_partner_update_request(params, headers)
expect(RecertificationMailer).to have_received(:notice_email).with(user)
end
end

Expand Down

0 comments on commit 9eb41bd

Please sign in to comment.