Skip to content

Commit fcdf515

Browse files
committed
refactor: use RSpec helper spec pattern for EmailHeaderHelper
Use type: :helper to include EmailHeaderHelper automatically, making the spec more idiomatic. Removed verbose anonymous class construction.
1 parent 2d20ebb commit fcdf515

1 file changed

Lines changed: 11 additions & 16 deletions

File tree

spec/helpers/email_header_helper_spec.rb

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,58 @@
1-
RSpec.describe EmailHeaderHelper do
2-
subject do
3-
Class.new do
4-
include EmailHeaderHelper
5-
public :mail_args
6-
end.new
7-
end
1+
RSpec.describe EmailHeaderHelper, type: :helper do
2+
before { EmailHeaderHelper.module_eval { public :mail_args } }
83

94
describe '#mail_args' do
105
let(:member) { Struct.new(:id, :email).new(1, 'test@example.com') }
116

127
it 'returns mail arguments for valid email' do
13-
result = subject.mail_args(member, 'Test Subject')
8+
result = helper.mail_args(member, 'Test Subject')
149
expect(result[:to]).to eq('test@example.com')
1510
expect(result[:subject]).to eq('Test Subject')
1611
end
1712

1813
it 'returns nil for nil email' do
1914
member = Struct.new(:id, :email).new(1, nil)
20-
result = subject.mail_args(member, 'Test Subject')
15+
result = helper.mail_args(member, 'Test Subject')
2116
expect(result).to be_nil
2217
end
2318

2419
it 'returns nil for blank email' do
2520
member = Struct.new(:id, :email).new(1, '')
26-
result = subject.mail_args(member, 'Test Subject')
21+
result = helper.mail_args(member, 'Test Subject')
2722
expect(result).to be_nil
2823
end
2924

3025
it 'returns nil for invalid email format' do
3126
member = Struct.new(:id, :email).new(1, 'invalid-email')
32-
result = subject.mail_args(member, 'Test Subject')
27+
result = helper.mail_args(member, 'Test Subject')
3328
expect(result).to be_nil
3429
end
3530

3631
it 'returns nil for email missing @ symbol' do
3732
member = Struct.new(:id, :email).new(1, 'invalidexample.com')
38-
result = subject.mail_args(member, 'Test Subject')
33+
result = helper.mail_args(member, 'Test Subject')
3934
expect(result).to be_nil
4035
end
4136

4237
it 'returns nil for email missing TLD' do
4338
member = Struct.new(:id, :email).new(1, 'invalid@example')
44-
result = subject.mail_args(member, 'Test Subject')
39+
result = helper.mail_args(member, 'Test Subject')
4540
expect(result).to be_nil
4641
end
4742

4843
it 'returns mail arguments for valid email with plus addressing' do
4944
member = Struct.new(:id, :email).new(1, 'user+tag@example.com')
50-
result = subject.mail_args(member, 'Test Subject')
45+
result = helper.mail_args(member, 'Test Subject')
5146
expect(result[:to]).to eq('user+tag@example.com')
5247
end
5348

5449
it 'includes from email when provided' do
55-
result = subject.mail_args(member, 'Test Subject', 'custom@codebar.io')
50+
result = helper.mail_args(member, 'Test Subject', 'custom@codebar.io')
5651
expect(result[:from]).to eq('codebar.io <custom@codebar.io>')
5752
end
5853

5954
it 'includes cc and bcc when provided' do
60-
result = subject.mail_args(member, 'Test Subject', 'from@codebar.io', 'cc@codebar.io', 'bcc@codebar.io')
55+
result = helper.mail_args(member, 'Test Subject', 'from@codebar.io', 'cc@codebar.io', 'bcc@codebar.io')
6156
expect(result[:cc]).to eq('cc@codebar.io')
6257
expect(result[:bcc]).to eq('bcc@codebar.io')
6358
end

0 commit comments

Comments
 (0)