Sha256: abb13f8d9981f6c79214202ab896a788012814d6c7e5511389dca820def748af

Contents?: true

Size: 1.57 KB

Versions: 54

Compression:

Stored size: 1.57 KB

Contents

require 'spec_helper'
require 'r10k/git/rugged/working_repository'

describe R10K::Git::Rugged::WorkingRepository, :if => R10K::Features.available?(:rugged) do
  include_context 'Git integration'

  let(:dirname) { 'working-repo' }

  subject { described_class.new(basedir, dirname) }

  it_behaves_like 'a git repository'
  it_behaves_like 'a git working repository'

  describe "checking out an unresolvable ref" do
    it "raises an error indicating that the ref was unresolvable" do
      expect(subject).to receive(:resolve).with("unresolvable")
      expect {
        subject.checkout("unresolvable")
      }.to raise_error(R10K::Git::GitError, /Unable to check out unresolvable ref 'unresolvable'/)
    end
  end

  context "checking out a specific SHA" do
    let(:_rugged_repo) { double("Repository") }

    before do
      subject.clone(remote)
      allow(subject).to receive(:with_repo).and_yield(_rugged_repo)
      allow(subject).to receive(:resolve).and_return("157011a4eaa27f1202a9d94335ee4876b26d377e")
    end

    describe "with force" do
      it "does not receive a checkout call" do
        expect(_rugged_repo).to_not receive(:checkout)
        expect(_rugged_repo).to receive(:reset)
        subject.checkout("157011a4eaa27f1202a9d94335ee4876b26d377e", {:force => true})
      end
    end

    describe "without force" do
      it "does receive a checkout call" do
        expect(_rugged_repo).to receive(:checkout)
        expect(_rugged_repo).to_not receive(:reset)
        subject.checkout("157011a4eaa27f1202a9d94335ee4876b26d377e", {:force => false})
      end
    end
  end
end

Version data entries

54 entries across 54 versions & 2 rubygems

Version Path
r10k-3.15.0 spec/integration/git/rugged/working_repository_spec.rb
akerl-r10k-3.14.2.1 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.14.2 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.14.1 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.14.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.13.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.12.1 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.12.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.11.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.10.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.9.3 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.9.2 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.9.1 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.9.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.8.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.7.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.6.0 spec/integration/git/rugged/working_repository_spec.rb
r10k-2.6.9 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.5.2 spec/integration/git/rugged/working_repository_spec.rb
r10k-3.5.1 spec/integration/git/rugged/working_repository_spec.rb