spec/lib/gdk/config_helper_spec.rb (37 lines of code) (raw):
# frozen_string_literal: true
RSpec.describe GDK::ConfigHelper do
let(:gdk_root) { Pathname.new('/home/git/gdk') }
let(:config) { instance_double(GDK::Config, gdk_root: gdk_root) }
let(:version_path) { 'VERSION' }
let(:full_path) { gdk_root.join(version_path) }
before do
allow(gdk_root).to receive(:join).with(version_path).and_return(full_path)
end
describe '.version_from' do
context 'when version file exists' do
before do
allow(full_path).to receive(:exist?).and_return(true)
end
context 'when version file contains a commit hash' do
it 'returns the commit hash' do
commit_hash = 'a' * 40
allow(full_path).to receive(:read).and_return(commit_hash)
expect(described_class.version_from(config, version_path)).to eq(commit_hash)
end
end
context 'when version file contains a short version' do
it 'returns the version prefixed with v' do
allow(full_path).to receive(:read).and_return("1.2.3\n")
expect(described_class.version_from(config, version_path)).to eq('v1.2.3')
end
end
end
context 'when version file does not exist' do
before do
allow(full_path).to receive(:exist?).and_return(false)
end
it 'returns an empty string' do
expect(described_class.version_from(config, version_path)).to eq('')
end
end
end
end