diff --git a/manifests/repo/redhat.pp b/manifests/repo/redhat.pp index 33688f4e..d99d8b1b 100644 --- a/manifests/repo/redhat.pp +++ b/manifests/repo/redhat.pp @@ -13,6 +13,7 @@ /(?i:Amazon)/ => '6', default => '$releasever', # Yum var } + $version = $yum_repo.match('.\d$')[0] yumrepo { 'remi': descr => 'Remi\'s RPM repository for Enterprise Linux $releasever - $basearch', @@ -23,9 +24,9 @@ priority => 1, } - yumrepo { 'remi-php56': - descr => 'Remi\'s PHP 5.6 RPM repository for Enterprise Linux $releasever - $basearch', - mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php56/mirror", + yumrepo { "remi-php${version}": + descr => "Remi's PHP ${version} RPM repository for Enterprise Linux \$releasever - \$basearch", + mirrorlist => "https://rpms.remirepo.net/enterprise/${releasever}/php${version}/mirror", enabled => 1, gpgcheck => 1, gpgkey => 'https://rpms.remirepo.net/RPM-GPG-KEY-remi', diff --git a/spec/acceptance/repo/php_repo_redhat_spec.rb b/spec/acceptance/repo/php_repo_redhat_spec.rb new file mode 100644 index 00000000..84c2f098 --- /dev/null +++ b/spec/acceptance/repo/php_repo_redhat_spec.rb @@ -0,0 +1,33 @@ +# frozen_string_literal: true + +require 'spec_helper_acceptance' + +describe 'with RedHat', if: (fact('os.family') == 'RedHat') do + context 'default parameters' do + it_behaves_like 'an idempotent resource' do + let(:manifest) do + <<-PUPPET + include 'php::repo::redhat' + PUPPET + end + end + describe yumrepo('remi-php56') do + it { is_expected.to exist } + end + end + + context 'with version 7.2' do + it_behaves_like 'an idempotent resource' do + let(:manifest) do + <<-PUPPET + class { 'php::repo::redhat': + yum_repo => 'remi_php72', + } + PUPPET + end + end + describe yumrepo('remi-php72') do + it { is_expected.to exist } + end + end +end diff --git a/spec/classes/php_repo_redhat_spec.rb b/spec/classes/php_repo_redhat_spec.rb new file mode 100644 index 00000000..ea1577cc --- /dev/null +++ b/spec/classes/php_repo_redhat_spec.rb @@ -0,0 +1,51 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe 'php::repo::redhat', type: :class do + on_supported_os.each do |os, facts| + context "on #{os}" do + let :facts do + facts + end + + case facts[:osfamily] + when 'RedHat' + describe 'when called with no parameters on RedHat' do + it { is_expected.to contain_yumrepo('remi-php56') } + end + + describe 'when called with version 7.0 on RedHat' do + let(:params) do + { + yum_repo: 'remi_php70' + } + end + + it { is_expected.to contain_yumrepo('remi-php70') } + end + + describe 'when call with version 7.1 on RedHat' do + let(:params) do + { + yum_repo: 'remi_php71' + } + end + + it { is_expected.to contain_yumrepo('remi-php71') } + end + + describe 'when call with version 7.2 on RedHat' do + let(:params) do + { + yum_repo: 'remi_php72' + } + end + + it { is_expected.to contain_yumrepo('remi-php72') } + end + + end + end + end +end