diff --git a/test/integration/default/controls/services_spec.rb b/test/integration/default/controls/services_spec.rb index 5dfd78e5287fa0c56ad115f3ff442d36846f4577..2c3d6e1211bdfe8a00413fac993de07901126c49 100644 --- a/test/integration/default/controls/services_spec.rb +++ b/test/integration/default/controls/services_spec.rb @@ -1,19 +1,21 @@ # frozen_string_literal: true -# Overide by Platform service_name = 'postgresql' -pg_port = 5432 -if (platform[:name] == 'centos') && platform[:release].start_with?('6') - service_name = 'postgresql-9.6' -elsif (platform[:family] == 'debian') || (platform[:family] == 'suse') - pg_port = 5433 -end + +pg_port = + case platform[:family] + when 'debian', 'suse' + 5433 + else + 5432 + end control 'Postgres service' do impact 0.5 - title 'should be running and enabled' + title 'should be installed, enabled and running' describe service(service_name) do + it { should be_installed } it { should be_enabled } it { should be_running } end diff --git a/test/integration/default/controls/share.rb b/test/integration/default/controls/share.rb new file mode 100644 index 0000000000000000000000000000000000000000..362f11c262735a65c8b3384a83b58b673e49924d --- /dev/null +++ b/test/integration/default/controls/share.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +# https://docs.chef.io/inspec/profiles/#including-all-controls-from-a-profile +# Could use `include_controls` in this scenario +# include_controls 'share' + +# https://docs.chef.io/inspec/profiles/#selectively-including-controls-from-a-profile +# However, using `require_controls` for more clarity +require_controls 'share' do + control 'Postgres command' + control 'Postgres configuration' + # control 'Postgres service' +end diff --git a/test/integration/repo/controls/services_spec.rb b/test/integration/repo/controls/services_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..e1927db028339dc0b344061b807e201f15099488 --- /dev/null +++ b/test/integration/repo/controls/services_spec.rb @@ -0,0 +1,37 @@ +# frozen_string_literal: true + +service_name = + case platform[:family] + when 'redhat', 'fedora', 'suse' + case system.platform[:release] + when 'tumbleweed' + 'postgresql' + else + 'postgresql-13' + end + else + 'postgresql' + end + +pg_port = + case platform[:family] + when 'debian', 'suse' + 5433 + else + 5432 + end + +control 'Postgres service' do + impact 0.5 + title 'should be installed, enabled and running' + + describe service(service_name) do + it { should be_installed } + it { should be_enabled } + it { should be_running } + end + + describe port(pg_port) do + it { should be_listening } + end +end diff --git a/test/integration/repo/controls/share.rb b/test/integration/repo/controls/share.rb new file mode 100644 index 0000000000000000000000000000000000000000..362f11c262735a65c8b3384a83b58b673e49924d --- /dev/null +++ b/test/integration/repo/controls/share.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +# https://docs.chef.io/inspec/profiles/#including-all-controls-from-a-profile +# Could use `include_controls` in this scenario +# include_controls 'share' + +# https://docs.chef.io/inspec/profiles/#selectively-including-controls-from-a-profile +# However, using `require_controls` for more clarity +require_controls 'share' do + control 'Postgres command' + control 'Postgres configuration' + # control 'Postgres service' +end diff --git a/test/integration/default/controls/command_spec.rb b/test/integration/share/controls/command_spec.rb similarity index 100% rename from test/integration/default/controls/command_spec.rb rename to test/integration/share/controls/command_spec.rb diff --git a/test/integration/default/controls/config_spec.rb b/test/integration/share/controls/config_spec.rb similarity index 100% rename from test/integration/default/controls/config_spec.rb rename to test/integration/share/controls/config_spec.rb