root / spec / unit / facter / nftables_spec.rb @ c00bcf2d
Historique | Voir | Annoter | Télécharger (1,27 ko)
1 |
# frozen_string_literal: true
|
---|---|
2 |
|
3 |
require 'spec_helper'
|
4 |
|
5 |
describe 'nftables' do |
6 |
before do
|
7 |
Facter.clear
|
8 |
allow(Process).to receive(:uid).and_return(0) |
9 |
allow(Facter::Util::Resolution).to receive(:which).with('nft').and_return('/usr/sbin/nft') |
10 |
allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables').and_return(nft_tables_result) |
11 |
allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version').and_return(nft_version_result) |
12 |
end
|
13 |
|
14 |
context 'nft present' do |
15 |
let(:nft_tables_result) { "table inet firewalld\ntable ip firewalld\n" } |
16 |
let(:nft_version_result) { "nftables v0.9.15 (Topsy)\n" } |
17 |
|
18 |
it 'returns valid fact' do |
19 |
expect(Facter.fact('nftables').value).to eq('tables' => %w[inet-firewalld ip-firewalld], 'version' => '0.9.15') |
20 |
end
|
21 |
end
|
22 |
|
23 |
context 'nft fails' do |
24 |
let(:nft_tables_result) { :failed } |
25 |
let(:nft_version_result) { :failed } |
26 |
|
27 |
it 'does not return a fact' do |
28 |
allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft --version', onfail: :failed).and_return(:failed) |
29 |
allow(Facter::Core::Execution).to receive(:execute).with('/usr/sbin/nft list tables', onfail: :failed).and_return(:failed) |
30 |
|
31 |
expect(Facter.fact('nftables').value).to be_nil |
32 |
end
|
33 |
end
|
34 |
end
|