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.
 
 
 

58 lines
1.4 KiB

require 'spec_helper'
require 'squib'
describe Squib::Commands::New do
describe '#process' do
before(:all) do
@old_stderr = $stderr
@old_stdout = $stdout
$stdout = StringIO.new
$stderr = StringIO.new
@oldpwd = Dir.pwd
Dir.chdir(output_dir)
end
before(:each) do
FileUtils.rm_rf('foo', secure: true)
@cmd = Squib::Commands::New.new
end
it 'raises an error if no directory was specified' do
expect{@cmd.process([], false)}.
to raise_error(ArgumentError, 'Please specify a path.')
end
it 'creates a basic template on an fresh directory' do
@cmd.process(['foo'], false)
expect(File.exist?('foo/deck.rb')).to be true
end
it 'creates an advanced template on an fresh directory' do
@cmd.process(['foo'], true)
expect(File.exist?('foo/src/deck.rb')).to be true
end
it 'creates a new template on an empty directory' do
Dir.mkdir('foo')
@cmd.process(['foo'], false)
expect(File.exist?('foo/deck.rb')).to be true
end
it 'does not create a new template on an empty ' do
Dir.mkdir('foo')
File.new('foo/somefile.txt', 'w+')
@cmd.process(['foo'], false)
$stderr.rewind
expect($stderr.string.chomp).
to end_with 'not empty. Doing nothing and quitting.'
end
after(:all) do
$stderr = @old_stderr
$stdout = @old_stdout
Dir.chdir(@oldpwd)
end
end
end