From 5549ebc67686b4de4e4273333af593b5dad77487 Mon Sep 17 00:00:00 2001 From: Thibault Jouan Date: Thu, 9 Oct 2014 19:47:52 +0000 Subject: [PATCH] Fail when `file_append' misses some arguments --- lib/producer/core/actions/file_append.rb | 4 ++++ spec/producer/core/actions/file_append_spec.rb | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/producer/core/actions/file_append.rb b/lib/producer/core/actions/file_append.rb index 4c31e5b..9d33dc9 100644 --- a/lib/producer/core/actions/file_append.rb +++ b/lib/producer/core/actions/file_append.rb @@ -3,6 +3,10 @@ module Producer module Actions class FileAppend < Action def setup + if arguments.compact.size != 2 + fail ArgumentError, '`%s\' action requires 2 arguments' % name + end + @path, @content = arguments end diff --git a/spec/producer/core/actions/file_append_spec.rb b/spec/producer/core/actions/file_append_spec.rb index bfc256a..15ce0d3 100644 --- a/spec/producer/core/actions/file_append_spec.rb +++ b/spec/producer/core/actions/file_append_spec.rb @@ -12,6 +12,16 @@ module Producer::Core before { allow(remote_fs).to receive(:file_read).with(path) { content } } + describe '#setup' do + context 'when content is missing' do + let(:added_content) { nil } + + it 'raises ArgumentError' do + expect { action }.to raise_error ArgumentError + end + end + end + describe '#apply' do it 'appends given content to requested file on remote filesystem' do expect(remote_fs)