|
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 } } |
8 | 3 |
|
9 | 4 | describe '#mail_args' do |
10 | 5 | let(:member) { Struct.new(:id, :email).new(1, 'test@example.com') } |
11 | 6 |
|
12 | 7 | it 'returns mail arguments for valid email' do |
13 | | - result = subject.mail_args(member, 'Test Subject') |
| 8 | + result = helper.mail_args(member, 'Test Subject') |
14 | 9 | expect(result[:to]).to eq('test@example.com') |
15 | 10 | expect(result[:subject]).to eq('Test Subject') |
16 | 11 | end |
17 | 12 |
|
18 | 13 | it 'returns nil for nil email' do |
19 | 14 | member = Struct.new(:id, :email).new(1, nil) |
20 | | - result = subject.mail_args(member, 'Test Subject') |
| 15 | + result = helper.mail_args(member, 'Test Subject') |
21 | 16 | expect(result).to be_nil |
22 | 17 | end |
23 | 18 |
|
24 | 19 | it 'returns nil for blank email' do |
25 | 20 | member = Struct.new(:id, :email).new(1, '') |
26 | | - result = subject.mail_args(member, 'Test Subject') |
| 21 | + result = helper.mail_args(member, 'Test Subject') |
27 | 22 | expect(result).to be_nil |
28 | 23 | end |
29 | 24 |
|
30 | 25 | it 'returns nil for invalid email format' do |
31 | 26 | 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') |
33 | 28 | expect(result).to be_nil |
34 | 29 | end |
35 | 30 |
|
36 | 31 | it 'returns nil for email missing @ symbol' do |
37 | 32 | 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') |
39 | 34 | expect(result).to be_nil |
40 | 35 | end |
41 | 36 |
|
42 | 37 | it 'returns nil for email missing TLD' do |
43 | 38 | 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') |
45 | 40 | expect(result).to be_nil |
46 | 41 | end |
47 | 42 |
|
48 | 43 | it 'returns mail arguments for valid email with plus addressing' do |
49 | 44 | 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') |
51 | 46 | expect(result[:to]).to eq('user+tag@example.com') |
52 | 47 | end |
53 | 48 |
|
54 | 49 | 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') |
56 | 51 | expect(result[:from]).to eq('codebar.io <custom@codebar.io>') |
57 | 52 | end |
58 | 53 |
|
59 | 54 | 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') |
61 | 56 | expect(result[:cc]).to eq('cc@codebar.io') |
62 | 57 | expect(result[:bcc]).to eq('bcc@codebar.io') |
63 | 58 | end |
|
0 commit comments