Hey guys,
Is there some sort of trick to using attributes in a minitest? I’m on
10.18.2… they are just standard attributes, set in the recipe. I’ve tried
default and set attributes, neither seem to work in the test.
I’m basically just trying to write a test to make sure logs were rotated on
Windows machines. This doesn’t work:
include MiniTest::Chef::Assertions
describe ‘cookbook::default’ do
time = Time.now
log_dirs = node[‘cookbook’][‘log_dirs’]
log_dirs.each do |dir|
if File.directory?(dir)
Dir["#{dir}/*"].each do |filename|
file = File.new(filename)
it "checking mtime on #{filename}" do
assert_modified_after(file, (time.to_i -
node[‘cookbook’][‘remove_after’] * 86400))
end
end
end
end
end
It gives me this error when running the above recipe: NoMethodError:
undefined method `[]’ for nil:NilClass
But if I set log_dirs to the array of logs in the attributes file, and set
remove_after to 7, it works great. I also tried removing the first
attribute per this bug:
https://github.com/calavera/minitest-chef-handler/issues/19 but it doesn’t
seem like it’s picking up the node attributes within the ‘it’ block either.
Any idea what I need to do to use those attributes in a minitest?
Jessica