aboutsummaryrefslogtreecommitdiff
path: root/spec/unit/provider/cron/crontab_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/provider/cron/crontab_spec.rb')
-rw-r--r--spec/unit/provider/cron/crontab_spec.rb39
1 files changed, 39 insertions, 0 deletions
diff --git a/spec/unit/provider/cron/crontab_spec.rb b/spec/unit/provider/cron/crontab_spec.rb
index 031b3ae..796a4c2 100644
--- a/spec/unit/provider/cron/crontab_spec.rb
+++ b/spec/unit/provider/cron/crontab_spec.rb
@@ -202,4 +202,43 @@ describe Puppet::Type.type(:cron).provider(:crontab) do
end
end
end
+
+ context '#enumerate_crontabs' do
+ before(:each) do
+ File.expects(:readable?).with(subject.crontab_dir).returns(true)
+ Dir.expects(:foreach).with(subject.crontab_dir).multiple_yields(*files)
+ end
+
+ context 'only a hidden file' do
+ let(:files) { ['.keep_cronbase-0'] }
+
+ before(:each) do
+ files.each do |filename|
+ path = File.join(subject.crontab_dir, filename)
+ File.expects(:file?).with(path).returns(true)
+ File.expects(:writable?).with(path).returns(true)
+ end
+ end
+
+ it 'ignores .keep_* files' do
+ expect { |b| described_class.enumerate_crontabs(&b) }.not_to yield_control
+ end
+ end
+
+ context 'multiple files' do
+ let(:files) { ['myuser', '.keep_cronbase-0'] }
+
+ before(:each) do
+ files.each do |filename|
+ path = File.join(subject.crontab_dir, filename)
+ File.expects(:file?).with(path).returns(true)
+ File.expects(:writable?).with(path).returns(true)
+ end
+ end
+
+ it 'ignores .keep_* files' do
+ expect { |b| described_class.enumerate_crontabs(&b) }.to yield_control.once
+ end
+ end
+ end
end