Skip to content

Commit

Permalink
Assert distribution support
Browse files Browse the repository at this point in the history
This takes the approach that if a distribution is supported, it should
support certain versions that Foreman supports.
  • Loading branch information
ekohl committed Feb 16, 2024
1 parent 4d26118 commit 711f139
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions spec/puppet_version_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@
require 'semantic_puppet'

SUPPORTED_PUPPET_VERSIONS = ['7.9.0', '8.0.0'].map { |v| SemanticPuppet::Version.parse(v) }
SUPPORTED_DISTROS = {
'CentOS' => ['8', '9'],
'Debian' => ['11'],
'RedHat' => ['8', '9'],
'Ubuntu' => ['20.04'],
}

describe 'Puppet module' do
Dir.glob(File.join(__dir__, '../_build/modules/*/metadata.json')).each do |filename|
Expand All @@ -14,12 +20,35 @@
version_requirement ||= '>= 0'
SemanticPuppet::VersionRange.parse(version_requirement)
end
let(:operatingsystem_support) { metadata['operatingsystem_support'] }

SUPPORTED_PUPPET_VERSIONS.each do |puppet_version|
it "supports Puppet #{puppet_version}" do
expect(puppet_requirement).to include(puppet_version)
end
end

SUPPORTED_DISTROS.each do |distro, versions|
versions.each do |version|
it "should support #{distro} #{version}" do
if operatingsystem_support.nil?
skip "No OS support listed"
end

distro_versions = operatingsystem_support.find { |os| os['operatingsystem'] == distro }

if distro_versions.nil?
skip "Distribution #{distro} is not supported"
end

unless distro_versions.key?('operatingsystemrelease')
skip "No specific distribution versions listed"
end

expect(distro_versions['operatingsystemrelease']).to include(version)
end
end
end
end
end
end

0 comments on commit 711f139

Please sign in to comment.