1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
require 'spec_helper'
require 'r10k/git/cache'
describe R10K::Git::Cache do
describe 'the default cache_root' do
it 'is in the right location in linux', unless: R10K::Util::Platform.windows? do
expect(described_class.defaults[:cache_root]).to match(/\.r10k\/git/)
end
it 'is in the right location for windows', if: R10K::Util::Platform.windows? do
expect(described_class.defaults[:cache_root]).to match(/[^.]r10k\/git/)
end
end
let(:subclass) do
Class.new(described_class) do
def self.bare_repository
Class.new { def initialize(*args) end }
end
end
end
let(:remote) { 'https://some/git/remote' }
subject { subclass.new(remote) }
describe "updating the cache" do
it "only updates the cache once" do
expect(subject).to receive(:sync!).exactly(1).times
subject.sync
subject.sync
end
end
describe "methods on the repository" do
def expect_delegation(method)
expect(subject.repo).to receive(method)
subject.send(method)
end
it "delegates #git_dir" do
expect_delegation(:git_dir)
end
it "delegates #objects_dir" do
expect_delegation(:objects_dir)
end
it "delegates #branches" do
expect_delegation(:branches)
end
it "delegates #tags" do
expect_delegation(:tags)
end
it "delegates #exist?" do
expect_delegation(:exist?)
end
it "aliases #cached? to #exist?" do
expect(subject.repo).to receive(:exist?)
subject.cached?
end
end
end
|