summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/provider/vcsrepo/hg_spec.rb
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2016-02-23 14:48:19 +0100
committervarac <varacanero@zeromail.org>2016-02-23 14:48:19 +0100
commit4e23209eaccf1ab504d35158f4141b3053327c2f (patch)
treee9c325ad24a732b6bdb13801ef2997f10f99e02e /spec/unit/puppet/provider/vcsrepo/hg_spec.rb
parentf92d09226cfddb0c7e5e342dd199d8ea05b497cb (diff)
parent6262d046c6993a6ae7112746210b91d46f94165e (diff)
Merge branch 'master' of https://github.com/puppetlabs/puppetlabs-vcsrepo
Diffstat (limited to 'spec/unit/puppet/provider/vcsrepo/hg_spec.rb')
-rw-r--r--spec/unit/puppet/provider/vcsrepo/hg_spec.rb76
1 files changed, 55 insertions, 21 deletions
diff --git a/spec/unit/puppet/provider/vcsrepo/hg_spec.rb b/spec/unit/puppet/provider/vcsrepo/hg_spec.rb
index f17aa2f..65d820d 100644
--- a/spec/unit/puppet/provider/vcsrepo/hg_spec.rb
+++ b/spec/unit/puppet/provider/vcsrepo/hg_spec.rb
@@ -1,24 +1,38 @@
require 'spec_helper'
-describe_provider :vcsrepo, :hg, :resource => {:path => '/tmp/vcsrepo'} do
+describe Puppet::Type.type(:vcsrepo).provider(:hg) do
+
+ let(:resource) { Puppet::Type.type(:vcsrepo).new({
+ :name => 'test',
+ :ensure => :present,
+ :provider => :hg,
+ :path => '/tmp/vcsrepo',
+ })}
+
+ let(:provider) { resource.provider }
+
+ before :each do
+ Puppet::Util.stubs(:which).with('hg').returns('/usr/bin/hg')
+ end
describe 'creating' do
- resource_with :source do
- resource_with :revision do
- it "should execute 'hg clone -u' with the revision" do
- provider.expects(:hg).with('clone', '-u',
- resource.value(:revision),
- resource.value(:source),
- resource.value(:path))
- provider.create
- end
+ context 'with source and revision' do
+ it "should execute 'hg clone -u' with the revision" do
+ resource[:source] = 'something'
+ resource[:revision] = '1'
+ provider.expects(:hg).with('clone', '-u',
+ resource.value(:revision),
+ resource.value(:source),
+ resource.value(:path))
+ provider.create
end
+ end
- resource_without :revision do
- it "should just execute 'hg clone' without a revision" do
- provider.expects(:hg).with('clone', resource.value(:source), resource.value(:path))
- provider.create
- end
+ context 'without revision' do
+ it "should just execute 'hg clone' without a revision" do
+ resource[:source] = 'something'
+ provider.expects(:hg).with('clone', resource.value(:source), resource.value(:path))
+ provider.create
end
end
@@ -28,6 +42,22 @@ describe_provider :vcsrepo, :hg, :resource => {:path => '/tmp/vcsrepo'} do
provider.create
end
end
+
+ context "when basic auth is used" do
+ it "should execute 'hg clone'" do
+ resource[:source] = 'something'
+ resource[:basic_auth_username] = 'user'
+ resource[:basic_auth_password] = 'pass'
+ provider.expects(:hg).with('clone',
+ resource.value(:source),
+ resource.value(:path),
+ "--config","\"auth.x.prefix=" + resource.value(:source) + "\"",
+ "--config","\"auth.x.username=" + resource.value(:basic_auth_username) + "\"",
+ "--config","\"auth.x.password=" + resource.value(:basic_auth_password) + "\"",
+ "--config","\"auth.x.schemes=http https" + "\"")
+ provider.create
+ end
+ end
end
describe 'destroying' do
@@ -55,15 +85,17 @@ describe_provider :vcsrepo, :hg, :resource => {:path => '/tmp/vcsrepo'} do
provider.expects(:hg).with('tags').returns(fixture(:hg_tags))
end
- context "when its SHA is not different than the current SHA", :resource => {:revision => '0.6'} do
+ context "when its SHA is not different than the current SHA" do
it "should return the ref" do
- provider.revision.should == '0.6'
+ resource[:revision] = '0.6'
+ expect(provider.revision).to eq('0.6')
end
end
- context "when its SHA is different than the current SHA", :resource => {:revision => '0.5.3'} do
+ context "when its SHA is different than the current SHA" do
it "should return the current SHA" do
- provider.revision.should == '34e6012c783a'
+ resource[:revision] = '0.5.3'
+ expect(provider.revision).to eq('34e6012c783a')
end
end
end
@@ -74,15 +106,17 @@ describe_provider :vcsrepo, :hg, :resource => {:path => '/tmp/vcsrepo'} do
context "when it is the same as the current SHA", :resource => {:revision => '34e6012c783a'} do
it "should return it" do
+ resource[:revision] = '34e6012c783a'
provider.expects(:hg).with('tags').returns(fixture(:hg_tags))
- provider.revision.should == resource.value(:revision)
+ expect(provider.revision).to eq(resource.value(:revision))
end
end
context "when it is not the same as the current SHA", :resource => {:revision => 'not-the-same'} do
it "should return the current SHA" do
+ resource[:revision] = 'not-the-same'
provider.expects(:hg).with('tags').returns(fixture(:hg_tags))
- provider.revision.should == '34e6012c783a'
+ expect(provider.revision).to eq('34e6012c783a')
end
end
end