GitLab wurde erfolgreich aktualisiert. Dank regelmäßiger Updates bleibt das THM GitLab sicher und Sie profitieren von den neuesten Funktionen. Danke für Ihre Geduld.

Commit 353d3da4 authored by Douwe Maan's avatar Douwe Maan

Fix redis spec

parent e5ac0644
require 'spec_helper'
describe 'mail_room.yml' do
include StubENV
let(:mailroom_config_path) { 'config/mail_room.yml' }
let(:gitlab_config_path) { 'config/mail_room.yml' }
let(:redis_config_path) { 'config/resque.yml' }
......@@ -19,12 +21,11 @@
end
before(:each) do
ENV['GITLAB_REDIS_CONFIG_FILE'] = absolute_path(redis_config_path)
stub_env('GITLAB_REDIS_CONFIG_FILE', absolute_path(redis_config_path))
clear_redis_raw_config
end
after(:each) do
ENV['GITLAB_REDIS_CONFIG_FILE'] = nil
clear_redis_raw_config
end
......
......@@ -3,8 +3,16 @@
describe Gitlab::Redis do
include StubENV
before(:each) { clear_raw_config }
after(:each) { clear_raw_config }
let(:config) { 'config/resque.yml' }
before(:each) do
stub_env('GITLAB_REDIS_CONFIG_FILE', Rails.root.join(config).to_s)
clear_raw_config
end
after(:each) do
clear_raw_config
end
describe '.params' do
subject { described_class.params }
......@@ -18,22 +26,22 @@
end
context 'when url contains unix socket reference' do
let(:config_old) { Rails.root.join('spec/fixtures/config/redis_old_format_socket.yml').to_s }
let(:config_new) { Rails.root.join('spec/fixtures/config/redis_new_format_socket.yml').to_s }
let(:config_old) { 'spec/fixtures/config/redis_old_format_socket.yml' }
let(:config_new) { 'spec/fixtures/config/redis_new_format_socket.yml' }
context 'with old format' do
it 'returns path key instead' do
stub_const("#{described_class}::CONFIG_FILE", config_old)
let(:config) { config_old }
it 'returns path key instead' do
is_expected.to include(path: '/path/to/old/redis.sock')
is_expected.not_to have_key(:url)
end
end
context 'with new format' do
it 'returns path key instead' do
stub_const("#{described_class}::CONFIG_FILE", config_new)
let(:config) { config_new }
it 'returns path key instead' do
is_expected.to include(path: '/path/to/redis.sock')
is_expected.not_to have_key(:url)
end
......@@ -41,22 +49,22 @@
end
context 'when url is host based' do
let(:config_old) { Rails.root.join('spec/fixtures/config/redis_old_format_host.yml') }
let(:config_new) { Rails.root.join('spec/fixtures/config/redis_new_format_host.yml') }
let(:config_old) { 'spec/fixtures/config/redis_old_format_host.yml' }
let(:config_new) { 'spec/fixtures/config/redis_new_format_host.yml' }
context 'with old format' do
it 'returns hash with host, port, db, and password' do
stub_const("#{described_class}::CONFIG_FILE", config_old)
let(:config) { config_old }
it 'returns hash with host, port, db, and password' do
is_expected.to include(host: 'localhost', password: 'mypassword', port: 6379, db: 99)
is_expected.not_to have_key(:url)
end
end
context 'with new format' do
it 'returns hash with host, port, db, and password' do
stub_const("#{described_class}::CONFIG_FILE", config_new)
let(:config) { config_new }
it 'returns hash with host, port, db, and password' do
is_expected.to include(host: 'localhost', password: 'mynewpassword', port: 6379, db: 99)
is_expected.not_to have_key(:url)
end
......@@ -74,15 +82,13 @@
end
context 'when yml file with env variable' do
let(:redis_config) { Rails.root.join('spec/fixtures/config/redis_config_with_env.yml') }
let(:config) { 'spec/fixtures/config/redis_config_with_env.yml' }
before do
stub_env('TEST_GITLAB_REDIS_URL', 'redis://redishost:6379')
end
it 'reads redis url from env variable' do
stub_const("#{described_class}::CONFIG_FILE", redis_config)
expect(described_class.url).to eq 'redis://redishost:6379'
end
end
......@@ -90,14 +96,13 @@
describe '._raw_config' do
subject { described_class._raw_config }
let(:config) { '/var/empty/doesnotexist' }
it 'should be frozen' do
expect(subject).to be_frozen
end
it 'returns false when the file does not exist' do
stub_const("#{described_class}::CONFIG_FILE", '/var/empty/doesnotexist')
expect(subject).to eq(false)
end
end
......@@ -134,22 +139,18 @@
subject { described_class.new(Rails.env).sentinels }
context 'when sentinels are defined' do
let(:config) { Rails.root.join('spec/fixtures/config/redis_new_format_host.yml') }
let(:config) { 'spec/fixtures/config/redis_new_format_host.yml' }
it 'returns an array of hashes with host and port keys' do
stub_const("#{described_class}::CONFIG_FILE", config)
is_expected.to include(host: 'localhost', port: 26380)
is_expected.to include(host: 'slave2', port: 26381)
end
end
context 'when sentinels are not defined' do
let(:config) { Rails.root.join('spec/fixtures/config/redis_old_format_host.yml') }
let(:config) { 'spec/fixtures/config/redis_old_format_host.yml' }
it 'returns nil' do
stub_const("#{described_class}::CONFIG_FILE", config)
is_expected.to be_nil
end
end
......@@ -159,21 +160,17 @@
subject { described_class.new(Rails.env).sentinels? }
context 'when sentinels are defined' do
let(:config) { Rails.root.join('spec/fixtures/config/redis_new_format_host.yml') }
let(:config) { 'spec/fixtures/config/redis_new_format_host.yml' }
it 'returns true' do
stub_const("#{described_class}::CONFIG_FILE", config)
is_expected.to be_truthy
end
end
context 'when sentinels are not defined' do
let(:config) { Rails.root.join('spec/fixtures/config/redis_old_format_host.yml') }
let(:config) { 'spec/fixtures/config/redis_old_format_host.yml' }
it 'returns false' do
stub_const("#{described_class}::CONFIG_FILE", config)
is_expected.to be_falsey
end
end
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment