Fail when `sh' misses arguments

This commit is contained in:
Thibault Jouan 2014-10-09 20:14:44 +00:00
parent 3f82b923b7
commit 3cc52bb1a8
2 changed files with 16 additions and 1 deletions

View File

@ -2,12 +2,17 @@ module Producer
module Core
module Actions
class ShellCommand < Action
def setup
check_arguments_size! 1
@command = arguments.first
end
def name
'sh'
end
def apply
remote.execute(arguments.first, output, error_output)
remote.execute(@command, output, error_output)
end
end
end

View File

@ -10,6 +10,16 @@ module Producer::Core
it_behaves_like 'action'
describe '#setup' do
context 'when command is missing' do
let(:command) { nil }
it 'raises ArgumentError' do
expect { sh }.to raise_error ArgumentError
end
end
end
describe '#apply' do
it 'executes the remote command' do
expect_execution(command)