diff options
author | kzwin <kz@example.org> | 2017-08-28 20:55:08 -0400 |
---|---|---|
committer | kzwin <kz@example.org> | 2017-08-28 20:58:14 -0400 |
commit | ec06f57d26e1cfd363324a32767370d4cf03cf47 (patch) | |
tree | e2adf696c03a1d9846ea00772a27044e670a5086 /spec | |
parent | 8c30db84a92f995cb6cf6d83f4964dffdd28ad1c (diff) | |
download | chef-ec06f57d26e1cfd363324a32767370d4cf03cf47.tar.gz |
handle apple git
Signed-off-by: kzwin <k.z.win@happyw.info>
Diffstat (limited to 'spec')
-rw-r--r-- | spec/unit/provider/git_spec.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/spec/unit/provider/git_spec.rb b/spec/unit/provider/git_spec.rb index a60c1b44c3..9c0bd8796a 100644 --- a/spec/unit/provider/git_spec.rb +++ b/spec/unit/provider/git_spec.rb @@ -83,6 +83,36 @@ describe Chef::Provider::Git do expect(@provider.new_resource).to equal(@resource) end + context 'cast git version into gem version object' do + it 'returns correct version with standard git' do + expect(@provider).to receive(:shell_out!) + .with('git --version', log_tag: 'git[web2.0 app]') + .and_return(double('ShellOut result', stdout: 'git version 2.14.1')) + expect(@provider.git_gem_version).to eq Gem::Version.new('2.14.1') + end + + it 'returns correct version with Apple git' do + expect(@provider).to receive(:shell_out!) + .with('git --version', log_tag: 'git[web2.0 app]') + .and_return(double('ShellOut result', stdout: 'git version 2.11.0 (Apple Git-81)')) + expect(@provider.git_gem_version).to eq Gem::Version.new('2.11.0') + end + + it 'maintains deprecated method name' do + expect(@provider).to receive(:shell_out!) + .with('git --version', log_tag: 'git[web2.0 app]') + .and_return(double('ShellOut result', stdout: 'git version 1.2.3')) + expect(@provider.git_minor_version).to eq Gem::Version.new('1.2.3') + end + + it 'does not know how to handle other version' do + expect(@provider).to receive(:shell_out!) + .with('git --version', log_tag: 'git[web2.0 app]') + .and_return(double('ShellOut result', stdout: 'git version home-grown-git-99')) + expect { @provider.git_gem_version }.to raise_error(ArgumentError, /unparsable git version/) + end + end + context "resolving revisions to a SHA" do before do |