Skip to content

Commit 9001ab7

Browse files
committed
Fix specs breaking with MiniMagick 5.x
1 parent 550e423 commit 9001ab7

File tree

3 files changed

+15
-8
lines changed

3 files changed

+15
-8
lines changed

carrierwave.gemspec

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Gem::Specification.new do |s|
3535
s.add_development_dependency "fog-aws"
3636
s.add_development_dependency "fog-google", ["~> 1.7", "!= 1.12.1"]
3737
s.add_development_dependency "fog-local"
38-
s.add_development_dependency "mini_magick", ">= 3.6.0"
38+
s.add_development_dependency "mini_magick"
3939

4040
if RUBY_ENGINE != 'jruby'
4141
s.add_development_dependency "rmagick", ">= 2.16"

gemfiles/rails-6-0.gemfile

+1
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ gem "sqlite3", platforms: :ruby
66
gem "activerecord-jdbcsqlite3-adapter", platform: [:jruby, :truffleruby]
77
gem "fog-google", "~> 1.13.0" if RUBY_VERSION < '2.7'
88
gem "fog-rackspace"
9+
gem "mini_magick", "~> 4.13"
910

1011
gemspec :path => "../"

spec/processing/mini_magick_spec.rb

+13-7
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'spec_helper'
2+
require 'open3'
23

34
describe CarrierWave::MiniMagick do
45
let(:klass) { Class.new(CarrierWave::Uploader::Base) { include CarrierWave::MiniMagick } }
@@ -270,8 +271,7 @@
270271

271272
context "of failing to find ImageMagick/GraphicsMagick" do
272273
before do
273-
MiniMagick.remove_instance_variable(:@processor) if MiniMagick.instance_variable_defined?(:@processor)
274-
MiniMagick.remove_instance_variable(:@cli) if MiniMagick.instance_variable_defined?(:@cli)
274+
allow(MiniMagick).to receive(:cli_prefix).and_return('invalid')
275275
allow(MiniMagick::Utilities).to receive(:which).and_return(nil)
276276
end
277277

@@ -283,6 +283,7 @@
283283
context "of being configured to use ImageMagick but failing to execute" do
284284
before do
285285
allow(MiniMagick).to receive(:processor).and_return(:magick)
286+
allow(Open3).to receive(:capture3).and_raise(Errno::ENOENT)
286287
allow_any_instance_of(MiniMagick::Shell).to receive(:execute_open3).and_raise(Errno::ENOENT)
287288
end
288289

@@ -293,6 +294,11 @@
293294
end
294295

295296
describe "#manipulate!" do
297+
let(:minimagick_error) do
298+
# MiniMagick >= 5.0 does not call #validate! on Image.create, hence the error changes
299+
MiniMagick::VERSION::MAJOR >= 5 ? MiniMagick::Error : MiniMagick::Invalid
300+
end
301+
296302
it "performs manipulation using the given block" do
297303
instance.manipulate! do |image|
298304
image.format('png')
@@ -310,8 +316,7 @@
310316

311317
context "on failing to find ImageMagick/GraphicsMagick" do
312318
before do
313-
MiniMagick.remove_instance_variable(:@processor) if MiniMagick.instance_variable_defined?(:@processor)
314-
MiniMagick.remove_instance_variable(:@cli) if MiniMagick.instance_variable_defined?(:@cli)
319+
allow(MiniMagick).to receive(:cli_prefix).and_return('invalid')
315320
allow(MiniMagick::Utilities).to receive(:which).and_return(nil)
316321
end
317322

@@ -320,23 +325,24 @@
320325
instance.manipulate! do |image|
321326
image.format('png')
322327
end
323-
end.to raise_exception(MiniMagick::Invalid)
328+
end.to raise_exception(minimagick_error)
324329
end
325330
end
326331

327332
context "on being configured to use ImageMagick but failing to execute" do
328333
before do
329334
allow(MiniMagick).to receive(:processor).and_return(:magick)
335+
allow(Open3).to receive(:capture3).and_raise(Errno::ENOENT)
330336
allow_any_instance_of(MiniMagick::Shell).to receive(:execute_open3).and_raise(Errno::ENOENT)
331337
end
332-
after { MiniMagick.remove_instance_variable(:@processor) }
338+
after { MiniMagick.remove_instance_variable(:@processor) if MiniMagick.instance_variable_defined?(:@processor) }
333339

334340
it "raises MiniMagick::Invalid" do
335341
expect do
336342
instance.manipulate! do |image|
337343
image.format('png')
338344
end
339-
end.to raise_exception(MiniMagick::Invalid)
345+
end.to raise_exception(minimagick_error)
340346
end
341347
end
342348
end

0 commit comments

Comments
 (0)