Sha256: 7f15d07180a5bf382c8024dbac028b3cbb43df875eee89a603d2efb3189527fe

Contents?: true

Size: 1.82 KB

Versions: 4

Compression:

Stored size: 1.82 KB

Contents

require 'gem_helper'
require 'capistrano/env/config'

describe Capistrano::Env::Config do
  let(:config) { described_class.new }
  describe '#formatter' do
    it { expect(config.formatter).to eq :dotenv }
  end

  describe '#formatter class' do
    it { expect(config.formatter_class).to eq Capistrano::Env::Formatter::DotenvFormatter }
  end

  describe '#capenv_file' do
    it { expect(config.capenv_file).to eq '.env' }
  end

  describe '#capenv_content' do
    it do
      require 'capistrano/env/formatter/dotenv_formatter'
      allow(config).to receive(:envs).and_return('a' => 'b')
      expect(Capistrano::Env::Formatter::DotenvFormatter).to receive(:format).with('a' => 'b').and_return 'hello'
      expect(config.capenv_content).to eq 'hello'
    end
  end

  describe '#add' do
    before do
      ENV['CAPENV_TEST_A'] = 'a'
      ENV['CAPENV_TEST_B'] = '1,2,3'
      ENV['CAPENV_TEST'] = '$'
      ENV['VAPENV_XYZ_A'] = 'X'
    end

    context 'with regex' do
      before do
        config.add(/^CAPENV_TEST_/)
      end
      it { expect(config.envs).to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => '1,2,3') }
    end
    context 'with string' do
      before do
        config.add 'CAPENV_TEST'
      end
      it { expect(config.envs).to eq('CAPENV_TEST' => '$') }
    end
    describe 'overridable' do
      before do
        config.add(/^CAPENV_TEST_/)
        config.add 'CAPENV_TEST_B', 'UNKO'
      end
      it { expect(config.envs).to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => 'UNKO') }
    end
    describe 'fix key with block' do
      before do
        config.add(/^CAPENV_TEST_/)
        config.add(/^CAPENV_TEST_/) do |key|
          key.gsub(/CAPENV_/, '')
        end
      end
      it { expect(config.envs).to eq('CAPENV_TEST_A' => 'a', 'CAPENV_TEST_B' => '1,2,3', 'TEST_A' => 'a', 'TEST_B' => '1,2,3') }
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
capistrano-env-0.3.3 spec/capistrano/env/config_spec.rb
capistrano-env-0.3.2 spec/capistrano/env/config_spec.rb
capistrano-env-0.3.1 spec/capistrano/env/config_spec.rb
capistrano-env-0.3.0 spec/capistrano/env/config_spec.rb