Sha256: 00544fc8ef16d76345c022e2c6f6053a890055f34251bb8da33a103549363134

Contents?: true

Size: 1.6 KB

Versions: 17

Compression:

Stored size: 1.6 KB

Contents

require 'spec_helper'

describe Berkshelf::Config do
  describe '.file' do
    context 'when the file does not exist' do
      before { File.stub(:exists?).and_return(false) }

      it 'is nil' do
        expect(Berkshelf::Config.file).to be_nil
      end
    end
  end

  describe '.instance' do
    it 'should be a Berkshelf::Config' do
      expect(Berkshelf::Config.instance).to be_an_instance_of(Berkshelf::Config)
    end
  end

  describe '.path' do
    it 'is a string' do
      expect(Berkshelf::Config.path).to be_a(String)
    end

    before do
      File.stub(:exists?).and_return(false)
    end

    after do
      Berkshelf::Config.instance_variable_set(:@path, nil)
    end

    Berkshelf::Config::LOCATIONS.each do |location|
      context "with '#{location}' as the config file" do
        let(:path) { File.expand_path(location) }
        before { File.stub(:exists?).with(path).and_return(true) }

        it "returns '#{location}' as the path" do
          expect(Berkshelf::Config.path).to eq(path)
        end
      end
    end

    context "when ENV['BERKSHELF_PATH'] is used" do
      before do
        ENV.stub(:[]).with('BERKSHELF_PATH').and_return('/tmp')
        File.stub(:exists?).with('/tmp').and_return(true)
      end

      it "points to a location within it" do
        expect(Berkshelf::Config.path).to eq('/tmp/config.json')
      end
    end
  end

  describe "::set_path" do
    subject(:set_path) { described_class.set_path("/tmp/other_path.json") }

    it "sets the #instance to nil" do
      set_path
      expect(described_class.instance_variable_get(:@instance)).to be_nil
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
berkshelf-2.0.18 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.17 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.16 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.15 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.14 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.13 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.12 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.11 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.10 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.9 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.8 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.7 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.6 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.5 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.4 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.3 spec/unit/berkshelf/config_spec.rb
berkshelf-2.0.1 spec/unit/berkshelf/config_spec.rb