discourse/spec/components/image_sizer_spec.rb
Andy Waite 3e50313fdc Prepare for separation of RSpec helper files
Since rspec-rails 3, the default installation creates two helper files:
* `spec_helper.rb`
* `rails_helper.rb`

`spec_helper.rb` is intended as a way of running specs that do not
require Rails, whereas `rails_helper.rb` loads Rails (as Discourse's
current `spec_helper.rb` does).

For more information:

https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files

In this commit, I've simply replaced all instances of `spec_helper` with
`rails_helper`, and renamed the original `spec_helper.rb`.

This brings the Discourse project closer to the standard usage of RSpec
in a Rails app.

At present, every spec relies on loading Rails, but there are likely
many that don't need to. In a future pull request, I hope to introduce a
separate, minimal `spec_helper.rb` which can be used in tests which
don't rely on Rails.
2015-12-01 20:39:42 +00:00

73 lines
1.5 KiB
Ruby

require 'rails_helper'
require 'image_sizer'
describe ImageSizer do
before do
SiteSetting.stubs(:max_image_width).returns(500)
SiteSetting.stubs(:max_image_height).returns(500)
end
it 'returns the same dimensions when smaller than the maximums' do
expect(ImageSizer.resize(400, 200)).to eq([400, 200])
end
it 'returns nil if the width is nil' do
expect(ImageSizer.resize(nil, 100)).to eq(nil)
end
it 'returns nil if the height is nil' do
expect(ImageSizer.resize(100, nil)).to eq(nil)
end
it 'works with string parameters' do
expect(ImageSizer.resize('100', '101')).to eq([100, 101])
end
describe 'when larger than the maximum width' do
before do
@w, @h = ImageSizer.resize(600, 123)
end
it 'returns the maxmimum width if larger than the maximum' do
expect(@w).to eq(500)
end
it 'resizes the height retaining the aspect ratio' do
expect(@h).to eq(102)
end
end
describe 'when larger than the maximum height' do
before do
@w, @h = ImageSizer.resize(123, 600)
end
it 'returns the maxmimum height if larger than the maximum' do
expect(@h).to eq(500)
end
it 'resizes the width retaining the aspect ratio' do
expect(@w).to eq(102)
end
end
describe 'when larger than the maximums' do
before do
@w, @h = ImageSizer.resize(533, 800)
end
it 'resizes both dimensions retaining the aspect ratio' do
expect(@h).to eq(500)
expect(@w).to eq(333)
end
end
end