Sha256: 4d358e34e421ea90954da5f3955e2e5899a24903c3a0303f985ac11291903260

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

require 'spec_helper'

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

  describe "#formatter_class" do
    it { expect(config.formatter_class).to eq Capistrano::Env::Formatter::RubyFormatter }
  end

  describe "#capenv_file" do
    it { expect(config.capenv_file).to eq "capenv.rb" }
  end

  describe "capenv content" do
    it {
      require 'capistrano/env/formatter/ruby_formatter'
      allow(config).to receive(:envs).and_return( { "a" => "b" } )
      expect(Capistrano::Env::Formatter::RubyFormatter).to receive(:format).with({"a" => "b"}).and_return "hello"
      expect(config.capenv_content).to eq "hello"
    }
  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

1 entries across 1 versions & 1 rubygems

Version Path
capistrano-env-0.1.0 spec/capistrano/env/config_spec.rb