spec/mysql/cli/config_spec.rb in ridgepole-0.8.5 vs spec/mysql/cli/config_spec.rb in ridgepole-0.8.6

- old
+ new

@@ -1,10 +1,12 @@ # frozen_string_literal: true describe Ridgepole::Config do - subject { Ridgepole::Config.load(config, env) } + subject { Ridgepole::Config.load(config, env, spec_name) } + let(:spec_name) { '' } + context 'when passed toplevel yaml' do let(:config) do <<-YAML.strip_heredoc adapter: mysql2 encoding: utf8 @@ -151,7 +153,58 @@ expect(subject['database']).to eq 'blog' expect(subject['username']).to eq 'root' expect(subject['password']).to eq 'pass' expect(subject['port']).to eq 3307 } + end + + context 'when passed rails database.yml multiple databases style yaml' do + let(:config) do + <<-YAML.strip_heredoc + development: + primary: + adapter: sqlspecifye + database: db/sample.db + production: + primary: + adapter: mysql2 + encoding: utf8 + database: blog + username: root + primary_replica: + adapter: mysql2 + encoding: utf8 + database: blog + username: readonly + YAML + end + + context 'in development env with primary spec name' do + let(:env) { 'development' } + let(:spec_name) { 'primary' } + specify do + expect(subject['adapter']).to eq 'sqlspecifye' + expect(subject['database']).to eq 'db/sample.db' + expect(subject['username']).to be_nil + end + end + + context 'in production env with primary spec name' do + let(:env) { 'production' } + let(:spec_name) { 'primary' } + specify do + expect(subject['adapter']).to eq 'mysql2' + expect(subject['encoding']).to eq 'utf8' + expect(subject['database']).to eq 'blog' + expect(subject['username']).to eq 'root' + end + end + + context 'in production env with primary_replica spec name' do + let(:env) { 'production' } + let(:spec_name) { 'primary_replica' } + specify do + expect(subject['username']).to eq 'readonly' + end + end end end