require 'minitest/spec' describe_recipe 'nginx::default' do include MiniTest::Chef::Resources include MiniTest::Chef::Assertions it 'creates nginx directory' do directory(node[:nginx][:dir]).must_exist.with(:owner, 'root').and(:group, 'root').and(:mode, '755') end it 'creates log directory' do directory(node[:nginx][:log_dir]).must_exist.with(:owner, node[:nginx][:user]).and(:mode, '755') end it 'creates debian style nginx site directories' do %w{sites-available sites-enabled conf.d}.each do |dir| directory(File.join(node[:nginx][:dir], dir)).must_exist.with(:owner, 'root').and(:group, 'root').and(:mode, '755') end end it 'creates debian style nginx site enabling/disabling scripts' do %w{nxensite nxdissite}.each do |nxscript| file("/usr/sbin/#{nxscript}").must_exist.with(:mode, '755').and(:owner, 'root').and(:group, 'root') end end it 'creates nginx conf file' do file(File.join(node[:nginx][:dir], 'nginx.conf')).must_exist.with(:owner, 'root').and(:group, 'root').and(:mode, '644') end it "creates a non-empty pid file" do file(node[:nginx][:pid_file]).must_match(/^\d+$/) end it 'creates default site' do file(File.join(node[:nginx][:dir], 'sites-available', 'default')).must_exist.with(:mode, '644').and(:owner, 'root').and(:group, 'root') end it 'enables nginx service' do service('nginx').must_be_enabled end it 'starts nginx service' do service('nginx').must_be_running end end