spec/defines/fail2ban_action_spec.rb (71 lines of code) (raw):

require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb') describe 'fail2ban::action' do let(:title) { 'fail2ban::action' } let(:node) { 'rspec.example42.com' } let(:facts) do { :ipaddress => '10.42.42.42', } end describe 'Test action define is called with no options' do let(:params) do { :actionname => 'sample1', } end let(:expected) do "# This file is managed by Puppet. DO NOT EDIT. # [INCLUDES] [Definition] [Init] " end it { should contain_file('sample1.local').with_path('/etc/fail2ban/action.d/sample1.local').with_content(expected) } end describe 'Test action.local is created with all options' do let(:params) do { :actionname => 'sample2', :actionstart => 'start_action', :actionstop => 'stop_action', :actioncheck => 'check_action', :actionban => ['first_ban_action','second_ban_action','complex[ban]'], :actionunban => 'now_unban', :actionbefore => 'add_before', :actioninitvars => ['a = 1','b = 2', 'not c'], } end let(:expected) do "# This file is managed by Puppet. DO NOT EDIT. # [INCLUDES] before = add_before [Definition] actionstart = start_action actionstop = stop_action actioncheck = check_action actionban = first_ban_action \tsecond_ban_action \tcomplex[ban] actionunban = now_unban [Init] a = 1 b = 2 not c " end it { should contain_file('sample2.local').with_path('/etc/fail2ban/action.d/sample2.local').with_content(expected) } it { should contain_file('sample2.local').without_source } end describe 'Test action define is called with a source file' do let(:params) do { :actionname => 'sample3', :actionsource => 'puppet:///some/path/to/source', } end it { should contain_file('sample3.local').with_path('/etc/fail2ban/action.d/sample3.local').with_source('puppet:///some/path/to/source') } it { should contain_file('sample3.local').without_template } end end