Skip to content

Commit 2b1b9af

Browse files
DRY up admin, supervisor and volunteer spec using shared_examples (#6877)
Update devise_mailer_preview_spec.rb DRY up admin, supervisor and volunteer specs using shared_examples
1 parent b55ba50 commit 2b1b9af

1 file changed

Lines changed: 11 additions & 16 deletions

File tree

spec/mailers/previews/devise_mailer_preview_spec.rb

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
require "rails_helper"
22
require Rails.root.join("lib/mailers/previews/devise_mailer_preview").to_s
33

4+
RSpec.shared_examples "invitation instructions" do |factory|
5+
let!(:record) { create(factory) }
6+
let(:message) { subject.send(:"invitation_instructions_as_#{factory}") }
7+
8+
it { expect(message.to).to eq [record.email] }
9+
end
10+
411
RSpec.describe DeviseMailerPreview do
512
let(:subject) { described_class.new }
613
let!(:user) { create(:user) }
@@ -29,30 +36,18 @@
2936
end
3037

3138
describe "#invitation_instructions_as_all_casa_admin" do
32-
let!(:all_casa_admin) { create(:all_casa_admin) }
33-
let(:message) { subject.invitation_instructions_as_all_casa_admin }
34-
35-
it { expect(message.to).to eq [all_casa_admin.email] }
39+
it_behaves_like "invitation instructions", :all_casa_admin
3640
end
3741

3842
describe "#invitation_instructions_as_casa_admin" do
39-
let!(:casa_admin) { create(:casa_admin) }
40-
let(:message) { subject.invitation_instructions_as_casa_admin }
41-
42-
it { expect(message.to).to eq [casa_admin.email] }
43+
it_behaves_like "invitation instructions", :casa_admin
4344
end
4445

4546
describe "#invitation_instructions_as_supervisor" do
46-
let!(:supervisor) { create(:supervisor) }
47-
let(:message) { subject.invitation_instructions_as_supervisor }
48-
49-
it { expect(message.to).to eq [supervisor.email] }
47+
it_behaves_like "invitation instructions", :supervisor
5048
end
5149

5250
describe "#invitation_instructions_as_volunteer" do
53-
let!(:volunteer) { create(:volunteer) }
54-
let(:message) { subject.invitation_instructions_as_volunteer }
55-
56-
it { expect(message.to).to eq [volunteer.email] }
51+
it_behaves_like "invitation instructions", :volunteer
5752
end
5853
end

0 commit comments

Comments
 (0)