Sha256: 74a5bbd474f27a8894b22bf85bb2e11e2af60d38e3c779ac07614e0e2a6bc25b

Contents?: true

Size: 1.34 KB

Versions: 3

Compression:

Stored size: 1.34 KB

Contents

require File.expand_path('../spec_helper', __FILE__)

module XcodeInstall
  describe Command::List do
    before do
      installer.stubs(:exists).returns(true)
      installer.stubs(:installed_versions).returns([])
    end

    def installer
      @installer ||= Installer.new
    end

    def fake_xcode(name)
      fixture = Pathname.new('spec/fixtures/xcode_63.json').read
      xcode = Xcode.new(JSON.parse(fixture))
      xcode.stubs(:name).returns(name)
      xcode
    end

    def fake_xcodes(*names)
      xcodes = names.map { |name| fake_xcode(name) }
      installer.stubs(:xcodes).returns(xcodes)
    end

    describe '#list' do
      it 'lists all versions' do
        fake_xcodes '1', '2.3', '3 some', '4 beta'
        installer.list.should == "1\n2.3\n3 some\n4 beta"
      end
    end

    describe '#list_current' do
      it 'shows versions from latest version only' do
        fake_xcodes '2', '3.0', '3.1', '1.1'
        installer.list_current.should == "3.0\n3.1"
      end

      it 'shows versions of new beta releases too' do
        fake_xcodes '5', '6.1', '6', '6.4 beta', '7 beta'
        installer.list_current.should == "6\n6.1\n6.4 beta\n7 beta"
      end

      it 'shows removes spurious versions from the list' do
        fake_xcodes '8.1', '8.2', '', nil
        installer.list_current.should == "8.1\n8.2"
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xcode-install-2.2.1 spec/list_spec.rb
xcode-install-2.2.0 spec/list_spec.rb
xcode-install-2.1.1 spec/list_spec.rb