Added spec tests for Vmpooler::Dns

This commit is contained in:
Jake Spain 2023-02-23 15:53:35 -05:00
parent fb80d989c8
commit 91248fe23a
No known key found for this signature in database
GPG key ID: BC1C4DA0A085E113
3 changed files with 83 additions and 123 deletions

View file

@ -1,104 +1,11 @@
require 'spec_helper'
describe 'Parser' do
# The only method previously tested here was '#get_domain_for_pool'
# which was moved to Vmpooler::Dns as the more appropriate class
#
# TODO: Add tests for last remaining method, or move to more appropriate class
describe 'Vmpooler::Parsing' do
let(:pool) { 'pool1' }
subject { Vmpooler::Parsing }
describe '.get_domain_for_pool' do
let(:provider_name) { 'mock_provider' }
context 'No provider is set' do
let(:config) { YAML.load(<<~EOT
---
:config:
:providers:
:mock_provider:
:pools:
- name: '#{pool}'
size: 1
EOT
)}
it 'should return nil' do
result = subject.get_domain_for_pool(config, pool)
expect(result).to be_nil
end
end
context 'Provider is vsphere by default' do
let(:config) { YAML.load(<<~EOT
---
:config:
:providers:
:vsphere:
domain: myown.com
:pools:
- name: '#{pool}'
size: 1
EOT
)}
it 'should return the domain set for vsphere' do
result = subject.get_domain_for_pool(config, pool)
expect(result).to eq('myown.com')
end
end
context 'No domain is set' do
let(:config) { YAML.load(<<~EOT
---
:config:
:providers:
:mock_provider:
:pools:
- name: '#{pool}'
size: 1
provider: #{provider_name}
EOT
)}
it 'should return nil' do
result = subject.get_domain_for_pool(config, pool)
expect(result).to be_nil
end
end
context 'Only a global domain is set' do
let(:config) { YAML.load(<<~EOT
---
:config:
domain: example.com
:providers:
:mock_provider:
:pools:
- name: '#{pool}'
size: 1
provider: #{provider_name}
EOT
)}
it 'should return the domain set in the config section' do
result = subject.get_domain_for_pool(config, pool)
expect(result).to_not be_nil
expect(result).to eq('example.com')
end
end
context 'A provider specified a domain to use' do
let(:config) { YAML.load(<<~EOT
---
:config:
:providers:
:mock_provider:
domain: m.example.com
:pools:
- name: '#{pool}'
size: 1
provider: #{provider_name}
EOT
)}
it 'should return the domain set in the config section' do
result = subject.get_domain_for_pool(config, pool)
expect(result).to_not be_nil
expect(result).to eq('m.example.com')
end
end
end
end