omnibus-gitlab/spec/chef/cookbooks/gitlab-ee/libraries/sentinel_spec.rb

69 lines
1.8 KiB
Ruby

# This spec is to test the Sentinel helper and whether the values parsed
# are the ones we expect
require 'chef_helper'
RSpec.describe 'Sentinel' do
let(:chef_run) { ChefSpec::SoloRunner.converge('gitlab::config') }
let(:node) { chef_run.node }
subject { ::Sentinel }
before do
allow(Gitlab).to receive(:[]).and_call_original
end
context '.parse_variables' do
context 'When sentinel is enabled' do
before do
stub_gitlab_rb(
redis_sentinel_role: {
enable: true,
}
)
end
it 'delegates to parse_sentinel_settings' do
expect(subject).to receive(:parse_sentinel_settings)
subject.parse_variables
end
context 'when redis announce_ip is defined' do
let(:redis_master_ip) { '1.1.1.1' }
let(:redis_announce_ip) { '10.10.10.10' }
before do
stub_gitlab_rb(
redis: {
master_ip: redis_master_ip,
announce_ip: redis_announce_ip
}
)
end
it 'Sentinel announce_ip is autofilled based on redis announce_ip' do
expect(node['gitlab']['sentinel']['announce_ip']).to eq redis_announce_ip
subject.parse_sentinel_settings
end
end
context 'when redis announce_port is defined' do
let(:redis_announce_port) { 6370 }
let(:sentinel_port) { 26370 }
before do
stub_gitlab_rb(
sentinel: {
port: sentinel_port
},
redis: {
announce_port: redis_announce_port
}
)
end
it 'Sentinel announce_port is autofilled based on sentinel port' do
expect(node['gitlab']['sentinel']['announce_port']).to eq sentinel_port
subject.parse_sentinel_settings
end
end
end
end
end