Skip to content

Commit a6f6037

Browse files
committed
devise fixes?
1 parent 137fefc commit a6f6037

File tree

2 files changed

+64
-12
lines changed

2 files changed

+64
-12
lines changed

lib/mailers/previews/devise_mailer_preview.rb

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,25 @@ def invitation_instructions_as_volunteer
3535
preview(volunteer)
3636
end
3737

38-
private
38+
def email_changed
39+
user = params.has_key?(:id) ? User.find_by(id: params[:id]) : User.last
40+
if user.nil?
41+
DebugPreviewMailer.invalid_user("user")
42+
else
43+
Devise::Mailer.email_changed(user)
44+
end
45+
end
3946

40-
# Unused email types
47+
def password_change
48+
user = params.has_key?(:id) ? User.find_by(id: params[:id]) : User.last
49+
if user.nil?
50+
DebugPreviewMailer.invalid_user("user")
51+
else
52+
Devise::Mailer.password_change(user)
53+
end
54+
end
55+
56+
private
4157

4258
def update_invitation_sent_at(model)
4359
# Set :invitation_sent_at to guarantee the preview works
@@ -47,15 +63,5 @@ def update_invitation_sent_at(model)
4763
def preview(model)
4864
Devise::Mailer.invitation_instructions(model, "faketoken")
4965
end
50-
51-
def email_changed
52-
user = params.has_key?(:id) ? User.find_by(id: params[:id]) : User.last
53-
Devise::Mailer.email_changed(user)
54-
end
55-
56-
def password_change
57-
user = params.has_key?(:id) ? User.find_by(id: params[:id]) : User.last
58-
Devise::Mailer.password_change(user)
59-
end
6066
end
6167
# :nocov:

spec/mailers/previews/devise_mailer_preview_spec.rb

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,50 @@
5555

5656
it { expect(message.to).to eq [volunteer.email] }
5757
end
58+
59+
describe "#email_changed" do
60+
context "When no ID is passed" do
61+
let(:preview) { described_class.new }
62+
let(:email) { preview.email_changed }
63+
64+
it { expect(email.to).to eq [user.email] }
65+
end
66+
67+
context "When passed ID is valid" do
68+
let(:preview) { described_class.new(id: user.id) }
69+
let(:email) { preview.email_changed }
70+
71+
it { expect(email.to).to eq [user.email] }
72+
end
73+
74+
context "When passed ID is invalid" do
75+
let(:preview) { described_class.new(id: -1) }
76+
let(:email) { preview.email_changed }
77+
78+
it { expect(email.to).to eq ["[email protected]"] }
79+
end
80+
end
81+
82+
describe "#password_change" do
83+
context "When no ID is passed" do
84+
let(:preview) { described_class.new }
85+
let(:email) { preview.password_change }
86+
87+
it { expect(email.to).to eq [user.email] }
88+
end
89+
90+
context "When passed ID is valid" do
91+
let(:preview) { described_class.new(id: user.id) }
92+
let(:email) { preview.password_change }
93+
94+
it { expect(email.to).to eq [user.email] }
95+
end
96+
97+
context "When passed ID is invalid" do
98+
let(:preview) { described_class.new(id: -1) }
99+
let(:email) { preview.password_change }
100+
101+
it { expect(email.to).to eq ["[email protected]"] }
102+
end
103+
end
58104
end

0 commit comments

Comments
 (0)