spec/processors/image_spec.rb in hydra-derivatives-3.1.4 vs spec/processors/image_spec.rb in hydra-derivatives-3.2.0
- old
+ new
@@ -3,23 +3,41 @@
describe Hydra::Derivatives::Processors::Image do
let(:file_name) { "file_name" }
subject { described_class.new(file_name, directives) }
context "when arguments are passed as a hash" do
- let(:directives) { { label: :thumb, size: "200x300>", format: 'png', quality: 75 } }
let(:mock_transformer) { double("MockTransformer") }
+ let(:mock_layer) { double("MockLayer") }
- before do
- allow(subject).to receive(:load_image_transformer).and_return(mock_transformer)
- allow(subject).to receive(:write_image).with(mock_transformer)
+ before { allow(subject).to receive(:load_image_transformer).and_return(mock_transformer) }
+
+ context "using image directives" do
+ let(:directives) { { label: :thumb, size: "200x300>", format: 'png', quality: 75 } }
+
+ before { allow(subject).to receive(:write_image).with(mock_transformer) }
+
+ it "uses the specified size and name and quality" do
+ expect(mock_transformer).to receive(:flatten)
+ expect(mock_transformer).to receive(:resize).with("200x300>")
+ expect(mock_transformer).to receive(:format).with("png")
+ expect(mock_transformer).to receive(:quality).with("75")
+ subject.process
+ end
end
- it "uses the specified size and name and quality" do
- expect(mock_transformer).to receive(:flatten)
- expect(mock_transformer).to receive(:resize).with("200x300>")
- expect(mock_transformer).to receive(:format).with("png")
- expect(mock_transformer).to receive(:quality).with("75")
- subject.process
+ context "using pdf directives" do
+ let(:directives) { { label: :thumb, size: "200x300>", format: 'pdf', layer: 0, quality: 75 } }
+
+ before { allow(subject).to receive(:write_image).with(mock_layer) }
+
+ it "uses the specified size and name and quality" do
+ expect(mock_transformer).to receive(:layers).and_return([mock_layer])
+ expect(mock_layer).to receive(:flatten)
+ expect(mock_layer).to receive(:resize).with("200x300>")
+ expect(mock_layer).to receive(:format).with("pdf")
+ expect(mock_layer).to receive(:quality).with("75")
+ subject.process
+ end
end
end
describe "#process" do
let(:directives) { { size: "100x100>", format: "png" } }