diff --git a/libraries/helpers.rb b/libraries/helpers.rb index 2bbae718..e5dd39a4 100644 --- a/libraries/helpers.rb +++ b/libraries/helpers.rb @@ -104,6 +104,10 @@ def debian_9? def ubuntu_18? platform?('ubuntu') && node['platform_version'].to_f == 18.04 end + + def nginx_site_config_file(conf_dir, site_name) + ::File.join(conf_dir, "#{site_name}.conf") + end end end end diff --git a/resources/site.rb b/resources/site.rb index 18d6bd07..43e5606e 100644 --- a/resources/site.rb +++ b/resources/site.rb @@ -63,13 +63,13 @@ description: 'Additional helper modules to include in the site template', coerce: proc { |p| p.is_a?(Array) ? p : [p] } +def config_file + nginx_site_config_file(conf_dir, name) +end + action_class do include Nginx::Cookbook::ResourceHelpers - def config_file - ::File.join(new_resource.conf_dir, "#{new_resource.name}.conf") - end - def config_file_disabled "#{config_file}.disabled" end diff --git a/spec/unit/resources/site_spec.rb b/spec/unit/resources/site_spec.rb index 0207df86..42d8a060 100644 --- a/spec/unit/resources/site_spec.rb +++ b/spec/unit/resources/site_spec.rb @@ -46,4 +46,28 @@ it { is_expected.to delete_file('/etc/nginx/conf.http.d/default.conf') } end + + context 'config_file method accessibility' do + recipe do + nginx_install 'distro' + + site = nginx_site 'test-site' do + conf_dir '/etc/nginx/sites-available' + action :create + end + + # This tests the new functionality - accessing config_file on the resource instance + ruby_block 'test_config_file_access' do + block do + expected_path = '/etc/nginx/sites-available/test-site.conf' + actual_path = site.config_file + raise "Expected #{expected_path}, got #{actual_path}" unless actual_path == expected_path + end + action :run + end + end + + it { is_expected.to create_template('/etc/nginx/sites-available/test-site.conf') } + it { is_expected.to run_ruby_block('test_config_file_access') } + end end