Logo: Relish

  1. Sign in

Project: RSpec Rails 3.9

URL helpers in mailer examples

Mailer specs are marked by :type => :mailer or if you have set
config.infer_spec_type_from_file_location! by placing them in spec/mailers.

Scenarios
  • @rails_post_5
using URL helpers with default options
Given
a file named "config/initializers/mailer_defaults.rb" with:
Rails.configuration.action_mailer.default_url_options = { :host => 'example.com' }
And
a file named "spec/mailers/notifications_spec.rb" with:
require 'rails_helper'

RSpec.describe NotificationsMailer, :type => :mailer do
  it 'should have access to URL helpers' do
    expect { gadgets_url }.not_to raise_error
  end
end
When
I run rspec spec
Then
the examples should all pass
  • @rails_post_5
using URL helpers without default options
Given
a file named "config/initializers/mailer_defaults.rb" with:
# no default options
And
a file named "spec/mailers/notifications_spec.rb" with:
require 'rails_helper'

RSpec.describe NotificationsMailer, :type => :mailer do
  it 'should have access to URL helpers' do
    expect { gadgets_url :host => 'example.com' }.not_to raise_error
    expect { gadgets_url }.to raise_error
  end
end
When
I run rspec spec
Then
the examples should all pass
  • @rails_pre_5
using URL helpers with default options
Given
a file named "config/initializers/mailer_defaults.rb" with:
Rails.configuration.action_mailer.default_url_options = { :host => 'example.com' }
And
a file named "spec/mailers/notifications_spec.rb" with:
require 'rails_helper'

RSpec.describe Notifications, :type => :mailer do
  it 'should have access to URL helpers' do
    expect { gadgets_url }.not_to raise_error
  end
end
When
I run rspec spec
Then
the examples should all pass
  • @rails_pre_5
using URL helpers without default options
Given
a file named "config/initializers/mailer_defaults.rb" with:
# no default options
And
a file named "spec/mailers/notifications_spec.rb" with:
require 'rails_helper'

RSpec.describe Notifications, :type => :mailer do
  it 'should have access to URL helpers' do
    expect { gadgets_url :host => 'example.com' }.not_to raise_error
    expect { gadgets_url }.to raise_error
  end
end
When
I run rspec spec
Then
the examples should all pass

Last published 11 months ago by Jon Rowe.