Skip to content

Commit

Permalink
Adjust rspec to refactored repository handling
Browse files Browse the repository at this point in the history
  • Loading branch information
crazymind1337 committed Mar 29, 2023
1 parent 709e4a1 commit 0e1c7e6
Show file tree
Hide file tree
Showing 14 changed files with 155 additions and 119 deletions.
1 change: 1 addition & 0 deletions spec/classes/init_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
include_examples 'config', parameter, facts
include_examples 'install', parameter, facts
include_examples 'service', parameter, facts
include_examples 'repository', parameter, facts if parameter['manage_repository']
end
end
end
Expand Down
16 changes: 12 additions & 4 deletions spec/helper/get_defaults.rb
Original file line number Diff line number Diff line change
Expand Up @@ -72,17 +72,25 @@ def get_defaults(facts)
##
## version
##
'version' => '2.5.0',
'version' => :undef,

##
## package values
##
'manage_package' => true,
'package_install_method' => 'package',
'package_ensure' => 'present',
'package_architecture' => package_architecture,
'package_provider' => package_provider,
'package_directory' => '/opt/opensearch',
'package_ensure' => 'present',
'package_provider' => package_provider,
'package_source' => 'repository',

##
## repository
##
'manage_repository' => true,
'repository_ensure' => 'present',
'repository_location' => :undef,
'repository_gpg_key' => 'https://artifacts.opensearch.org/publickeys/opensearch.pgp',

##
## opensearch settings
Expand Down
2 changes: 1 addition & 1 deletion spec/shared_examples/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
end

if parameter['manage_config']
config_directory = case parameter['package_install_method']
config_directory = case parameter['package_source']
when 'archive'
"#{parameter['package_directory']}/config"
else
Expand Down
10 changes: 8 additions & 2 deletions spec/shared_examples/install.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

shared_examples 'install' do |parameter, facts|
shared_examples 'install' do |parameter|
it {
is_expected.to contain_class('opensearch::install').that_comes_before('Class[opensearch::config]')
}
Expand All @@ -11,5 +11,11 @@
}
end

include_examples "install_#{parameter['package_install_method']}", parameter, facts if parameter['manage_package']
if parameter['manage_package']
if parameter['package_source'] == 'archive'
include_examples 'install_archive', parameter
else
include_examples 'install_package', parameter
end
end
end
2 changes: 1 addition & 1 deletion spec/shared_examples/install_archive.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

shared_examples 'install_archive' do |parameter, _facts|
shared_examples 'install_archive' do |parameter|
it {
is_expected.to contain_class('opensearch::install::archive')
}
Expand Down
55 changes: 35 additions & 20 deletions spec/shared_examples/install_package.rb
Original file line number Diff line number Diff line change
@@ -1,34 +1,49 @@
# frozen_string_literal: true

shared_examples 'install_package' do |parameter, _facts|
shared_examples 'install_package' do |parameter|
it {
is_expected.to contain_class('opensearch::install::package')
}

file = case parameter['package_provider']
when 'dpkg'
"opensearch-#{parameter['version']}-linux-#{parameter['package_architecture']}.deb"
when 'rpm'
"opensearch-#{parameter['version']}-linux-#{parameter['package_architecture']}.rpm"
end
if parameter['package_source'] == 'download'
ensure_value = parameter['package_ensure']
provider = parameter['package_provider']

it {
is_expected.to contain_archive("/tmp/#{file}").with(
{
'provider' => 'wget',
'extract' => false,
'cleanup' => true,
'source' => "https://artifacts.opensearch.org/releases/bundle/opensearch/#{parameter['version']}/#{file}",
}
)
}
file = case parameter['package_provider']
when 'dpkg'
"opensearch-#{parameter['version']}-linux-#{parameter['package_architecture']}.deb"
when 'rpm'
"opensearch-#{parameter['version']}-linux-#{parameter['package_architecture']}.rpm"
end

source = "/tmp/#{file}"

it {
is_expected.to contain_archive("/tmp/#{file}").with(
{
'provider' => 'wget',
'extract' => false,
'cleanup' => true,
'source' => "https://artifacts.opensearch.org/releases/bundle/opensearch/#{parameter['version']}/#{file}",
}
).that_comes_before('Package[opensearch]')
}
else
ensure_value = if parameter['version'] == :undef
parameter['package_ensure']
else
parameter['version']
end
provider = nil
source = nil
end

it {
is_expected.to contain_package('opensearch').with(
{
'ensure' => parameter['package_ensure'],
'provider' => parameter['package_provider'],
'source' => "/tmp/#{file}",
'ensure' => ensure_value,
'provider' => provider,
'source' => source,
}
)
}
Expand Down
14 changes: 0 additions & 14 deletions spec/shared_examples/install_repository.rb

This file was deleted.

40 changes: 0 additions & 40 deletions spec/shared_examples/install_repository_debian.rb

This file was deleted.

27 changes: 0 additions & 27 deletions spec/shared_examples/install_repository_redhat.rb

This file was deleted.

14 changes: 14 additions & 0 deletions spec/shared_examples/repository.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# frozen_string_literal: true

shared_examples 'repository' do |parameter, facts|
it {
is_expected.to contain_class('opensearch::repository')
}

case facts[:os]['family']
when 'RedHat'
include_examples 'repository_redhat', parameter, facts
when 'Debian'
include_examples 'repository_debian', parameter, facts
end
end
44 changes: 44 additions & 0 deletions spec/shared_examples/repository_debian.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# frozen_string_literal: true

shared_examples 'repository_debian' do |parameter|
it {
is_expected.to contain_class('opensearch::repository::debian')
}

location = if parameter['version'] == :undef
if parameter['repository_location'] == :undef
'https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt'
else
parameter['repository_location']
end
elsif parameter['repository_location'] == :undef
"https://artifacts.opensearch.org/releases/bundle/opensearch/#{parameter['version'][0]}.x/apt"
else
parameter['repository_location']
end

it {
is_expected.to contain_archive('/tmp/opensearch.pgp').with(
{
'ensure' => parameter['repository_ensure'],
'source' => parameter['repository_gpg_key'],
'extract' => true,
'extract_path' => '/usr/share/keyrings',
'extract_command' => 'gpg --dearmor < %s > opensearch.keyring.gpg',
'creates' => '/usr/share/keyrings/opensearch.keyring.gpg',
}
)
}

it {
is_expected.to contain_apt__source('opensearch').with(
{
'ensure' => parameter['repository_ensure'],
'location' => location,
'release' => 'stable',
'repos' => 'main',
'keyring' => '/usr/share/keyrings/opensearch.keyring.gpg',
}
).that_notifies('Class[apt::update]')
}
end
31 changes: 31 additions & 0 deletions spec/shared_examples/repository_redhat.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# frozen_string_literal: true

shared_examples 'repository_redhat' do |parameter|
it {
is_expected.to contain_class('opensearch::repository::redhat')
}

baseurl = if parameter['version'] == :undef
if parameter['repository_location'] == :undef
'https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/yum'
else
parameter['repository_location']
end
elsif parameter['repository_location'] == :undef
"https://artifacts.opensearch.org/releases/bundle/opensearch/#{parameter['version'][0]}.x/yum"
else
parameter['repository_location']
end

it {
is_expected.to contain_yumrepo('opensearch').with(
{
'ensure' => parameter['repository_ensure'],
'baseurl' => baseurl,
'repo_gpgcheck' => '1',
'gpgcheck' => '1',
'gpgkey' => 'https://artifacts.opensearch.org/publickeys/opensearch.pgp',
}
)
}
end
2 changes: 1 addition & 1 deletion spec/shared_examples/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
}

if parameter['manage_service']
if parameter['package_install_method'] == 'archive'
if parameter['package_source'] == 'archive'
it {
is_expected.to contain_systemd__unit_file('opensearch.service').with(
{
Expand Down
16 changes: 7 additions & 9 deletions spec/spec_helper_local.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@
require 'shared_examples/config'
require 'shared_examples/install_archive'
require 'shared_examples/install_package'
require 'shared_examples/install_repository_debian'
require 'shared_examples/install_repository_redhat'
require 'shared_examples/install_repository'
require 'shared_examples/install'
require 'shared_examples/repository_debian'
require 'shared_examples/repository_redhat'
require 'shared_examples/repository'
require 'shared_examples/service'

require 'helper/get_defaults'

TESTS = {
'with default value' => {},
'with installation via archive' => {
'package_install_method' => 'archive',
},
'with installation via archive and version 2.6.0' => {
'version' => '2.6.0',
'package_install_method' => 'archive',
'package_source' => 'archive',
},
'with installation via repository' => {
'package_install_method' => 'repository',
'with installation via download and version 2.6.0' => {
'version' => '2.6.0',
'package_source' => 'download',
},
'with some settings given' => {
'settings' => {
Expand Down

0 comments on commit 0e1c7e6

Please sign in to comment.