spec/chef/gitlab-ctl-commands/lib/postgresql_spec.rb (61 lines of code) (raw):
require 'spec_helper'
$LOAD_PATH << File.join(__dir__, '../../../files/gitlab-ctl-commands/lib')
require 'postgresql'
RSpec.describe GitlabCtl::PostgreSQL do
describe "#postgresql_username" do
before do
allow(GitlabCtl::Util).to receive(:get_node_attributes).and_return(
{
'postgresql' => {
'username' => 'bar'
}
}
)
end
it 'detects username correctly' do
expect(described_class.postgresql_username).to eq('bar')
end
end
describe '#postgresql_group' do
before do
allow(GitlabCtl::Util).to receive(:get_node_attributes).and_return(
{
'postgresql' => {
'group' => 'foo'
}
}
)
end
it 'returns the correct group' do
expect(described_class.postgresql_group).to eq('foo')
end
end
describe '#postgresql_version' do
before do
allow(GitlabCtl::Util).to receive(:get_node_attributes).and_return(
{
'postgresql' => {
'dir' => '/var/opt/gitlab'
}
}
)
end
context 'when PG_VERSION file exists' do
before do
allow(File).to receive(:exist?).and_return(true)
allow(File).to receive(:read).and_return('12\n')
end
it 'returns the version' do
expect(described_class.postgresql_version).to eq(12)
end
end
context 'when PG_VERSION file exists' do
before do
allow(File).to receive(:exist?).and_return(false)
end
it 'returns nil' do
expect(described_class.postgresql_version).to be_nil
end
end
end
end