You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.5 KiB
51 lines
1.5 KiB
require 'spec_helper' |
|
require 'squib/args/save_batch' |
|
|
|
describe Squib::Args::SaveBatch do |
|
subject(:save_batch) {Squib::Args::SaveBatch.new} |
|
|
|
context 'dir' do |
|
it 'is created if not exists (and warns)' do |
|
opts = {dir: 'tocreate'} |
|
Dir.chdir(output_dir) do |
|
FileUtils.rm_rf('tocreate', secure: true) |
|
expect(Squib.logger).to receive(:warn).with("Dir 'tocreate' does not exist, creating it.").once |
|
save_batch.load! opts |
|
expect(save_batch).to have_attributes({dir: ['tocreate']}) |
|
expect(Dir.exists? 'tocreate').to be true |
|
end |
|
end |
|
end |
|
|
|
context 'rotate' do |
|
it 'does nothing by default' do |
|
opts = {} |
|
save_batch.load! opts |
|
expect(save_batch[0]).to have_attributes({rotate: false, angle: 0}) |
|
end |
|
|
|
it 'rotates by pi/2 with true' do |
|
opts = {rotate: true} |
|
save_batch.load! opts |
|
expect(save_batch[0]).to have_attributes({rotate: true, angle: Math::PI / 2}) |
|
end |
|
|
|
it 'rotates by pi/2' do |
|
opts = {rotate: :clockwise} |
|
save_batch.load! opts |
|
expect(save_batch[0]).to have_attributes({rotate: true, angle: Math::PI / 2}) |
|
end |
|
|
|
it 'rotates by pi/2 with counterclockwise' do |
|
opts = {rotate: :counterclockwise} |
|
save_batch.load! opts |
|
expect(save_batch[0]).to have_attributes({rotate: true, angle: 3 * Math::PI / 2}) |
|
end |
|
|
|
it 'raises error on a number' do |
|
opts = {rotate: 5.0} |
|
expect { save_batch.load!(opts) }.to raise_error('invalid option to rotate: only [true, false, :clockwise, :counterclockwise]') |
|
end |
|
end |
|
|
|
end
|
|
|