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.
 
 
 

36 lines
1.0 KiB

require 'spec_helper'
require 'squib/args/input_file'
describe Squib::Args::InputFile do
subject(:ifile) {Squib::Args::InputFile.new}
context 'validate_file' do
it 'allows a file if it exists' do
args = { file: __FILE__ } # I code therefore I am.
ifile.load!(args, expand_by: 1)
expect(ifile).to have_attributes(file: [File.expand_path(__FILE__)])
end
it 'raises on non-existent file' do
args = { file: 'foo.rb' }
expect { ifile.load!(args, expand_by: 1) }.to raise_error("File #{File.expand_path('foo.rb')} does not exist!")
end
end
context 'layouts' do
let(:layout) do
{ 'attack' => { 'file' => __FILE__ },
'defend' => { 'file' => 'lib/squib.rb' } } #these files DEFINITELY exist
end
it 'allows layout expansion' do
args = { layout: ['attack', 'defend'] }
ifile.load!(args, expand_by: 2, layout: layout)
expect(ifile[0].file).to end_with(__FILE__)
expect(ifile[1].file).to end_with('lib/squib.rb')
end
end
end