omnibus-gitlab/spec/chef/cookbooks/gitlab/recipes/gitlab-rails/gitlab_yml/consul_spec.rb

124 lines
3.1 KiB
Ruby

require 'chef_helper'
RSpec.describe 'gitlab::gitlab-rails' do
include_context 'gitlab-rails'
describe 'Consul settings' do
context 'with default values' do
it 'renders gitlab.yml without Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: ""
)
end
end
context 'with user specified values' do
context 'when bundled consul is enabled' do
before do
stub_gitlab_rb(
consul: {
enable: true
}
)
end
it 'renders gitlab.yml with default Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: 'http://localhost:8500'
)
end
end
context 'when Consul is running on non-default location' do
context 'when setting client_addr and ports' do
before do
stub_gitlab_rb(
consul: {
enable: true,
configuration: {
client_addr: '10.0.0.1',
ports: {
http: 1234
}
}
}
)
end
it 'renders gitlab.yml with specified Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: 'http://10.0.0.1:1234'
)
end
end
context 'when setting addresses and ports' do
before do
stub_gitlab_rb(
consul: {
enable: true,
configuration: {
addresses: {
http: '10.0.1.2',
},
ports: {
http: 1234
}
}
}
)
end
it 'renders gitlab.yml with specified Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: 'http://10.0.1.2:1234'
)
end
end
context 'when http port is disabled via negative port number' do
before do
stub_gitlab_rb(
consul: {
enable: true,
configuration: {
addresses: {
https: '10.0.1.2',
},
ports: {
http: -1,
https: 1234
}
}
}
)
end
it 'renders gitlab.yml with specified Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: 'https://10.0.1.2:1234'
)
end
end
end
context 'when tls is enabled' do
before do
stub_gitlab_rb(
consul: {
enable: true,
use_tls: true
}
)
end
it 'renders gitlab.yml with specified Consul settings' do
expect(gitlab_yml[:production][:consul]).to eq(
api_url: 'https://localhost:8501'
)
end
end
end
end
end