Skip to content

Commit d226a3f

Browse files
committed
(maint) increase test coverage
1 parent 296b262 commit d226a3f

6 files changed

+69
-22
lines changed

.sync.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ spec/spec_helper.rb:
33
spec_overrides:
44
- require 'spec_helper_local'
55
coverage_report: true
6-
minimum_code_coverage_percentage: 69
6+
minimum_code_coverage_percentage: 81
77

88
.github/workflows/ci.yml:
99
unmanaged: true

spec/classes/mysql_backup_mysqldump_spec.rb

+19
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,25 @@ class { 'mysql::server': }
5151
minute: 5,
5252
)
5353
}
54+
55+
it {
56+
is_expected.to contain_package('bzip2')
57+
}
58+
59+
it {
60+
package_name = (facts[:os]['family'] == 'RedHat') ? 'cronie' : 'cron'
61+
is_expected.to contain_package(package_name)
62+
}
63+
end
64+
65+
context 'without backupcomress' do
66+
let(:params) do
67+
{ 'backupcompress' => false, }.merge(default_params)
68+
end
69+
70+
it {
71+
is_expected.not_to contain_package('bzip2')
72+
}
5473
end
5574

5675
context 'with compression_command' do

spec/classes/mysql_backup_xtrabackup_spec.rb

+31-20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,29 @@
55
describe 'mysql::backup::xtrabackup' do
66
on_supported_os.each do |os, facts|
77
context "on #{os}" do
8+
let(:package) do
9+
if facts[:os]['family'] == 'RedHat'
10+
if Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '8') >= 0
11+
'percona-xtrabackup-24'
12+
else
13+
'percona-xtrabackup'
14+
end
15+
elsif facts[:os]['name'] == 'Debian'
16+
'percona-xtrabackup-24'
17+
elsif facts[:os]['name'] == 'Ubuntu'
18+
if Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '20') < 0 &&
19+
Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '16') >= 0
20+
'percona-xtrabackup'
21+
else
22+
'percona-xtrabackup-24'
23+
end
24+
elsif facts[:os]['family'] == 'Suse'
25+
'xtrabackup'
26+
else
27+
'percona-xtrabackup'
28+
end
29+
end
30+
831
let(:pre_condition) do
932
<<-MANIFEST
1033
class { 'mysql::server': }
@@ -38,26 +61,7 @@ class { 'mysql::server': }
3861
)
3962
end
4063

41-
package = if facts[:os]['family'] == 'RedHat'
42-
if Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '8') >= 0
43-
'percona-xtrabackup-24'
44-
else
45-
'percona-xtrabackup'
46-
end
47-
elsif facts[:os]['name'] == 'Debian'
48-
'percona-xtrabackup-24'
49-
elsif facts[:os]['name'] == 'Ubuntu'
50-
if Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '20') < 0 &&
51-
Puppet::Util::Package.versioncmp(facts[:os]['release']['major'], '16') >= 0
52-
'percona-xtrabackup'
53-
else
54-
'percona-xtrabackup-24'
55-
end
56-
elsif facts[:os]['family'] == 'Suse'
57-
'xtrabackup'
58-
else
59-
'percona-xtrabackup'
60-
end
64+
it { is_expected.to contain_package(package) }
6165

6266
it 'contains the weekly cronjob' do
6367
is_expected.to contain_cron('xtrabackup-weekly')
@@ -72,6 +76,11 @@ class { 'mysql::server': }
7276
.that_requires("Package[#{package}]")
7377
end
7478

79+
it {
80+
package_name = (facts[:os]['family'] == 'RedHat') ? 'cronie' : 'cron'
81+
is_expected.to contain_package(package_name)
82+
}
83+
7584
it 'contains the daily cronjob for weekdays 1-6' do
7685
dateformat = case facts[:os]['name']
7786
when 'FreeBSD', 'OpenBSD'
@@ -304,6 +313,8 @@ class { 'mysql::server': }
304313
%r{(\n*^mariabackup\s+.*\$@)},
305314
)
306315
end
316+
317+
it { is_expected.to contain_package(params[:backupmethod_package]) }
307318
end
308319

309320
context 'with backup_success_file_path' do

spec/classes/mysql_client_spec.rb

+2
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
it { is_expected.to contain_class('mysql::client::install') }
1313
it { is_expected.not_to contain_class('mysql::bindings') }
1414
it { is_expected.to contain_package('mysql_client') }
15+
it { is_expected.to contain_anchor('mysql::client::start') }
16+
it { is_expected.to contain_anchor('mysql::client::end') }
1517
end
1618

1719
context 'with bindings enabled' do

spec/classes/mysql_server_spec.rb

+15
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@
1818
it { is_expected.to contain_class('mysql::server::providers') }
1919
it { is_expected.to contain_file('mysql-config-file').that_comes_before('Service[mysqld]') }
2020
it { is_expected.not_to contain_file('mysql-config-file').that_notifies('Service[mysqld]') }
21+
22+
it { is_expected.to contain_anchor('mysql::server::start') }
23+
it { is_expected.to contain_anchor('mysql::server::end') }
24+
25+
it {
26+
is_expected.to contain_exec('wait_for_mysql_socket_to_open')
27+
.with(
28+
command: ['test', '-S', %r{.*\.sock}],
29+
unless: [['test', '-S', %r{.*\.sock}]],
30+
tries: '3',
31+
try_sleep: '10',
32+
require: 'Service[mysqld]',
33+
path: '/bin:/usr/bin',
34+
)
35+
}
2136
end
2237

2338
context 'with remove_default_accounts set' do

spec/spec_helper.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
end
4848
c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT']
4949
c.after(:suite) do
50-
RSpec::Puppet::Coverage.report!(69)
50+
RSpec::Puppet::Coverage.report!(81)
5151
end
5252

5353
# Filter backtrace noise

0 commit comments

Comments
 (0)