summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorJack Foy <jfoy@whitepages.com>2013-06-06 17:03:15 -0700
committerJack Foy <jfoy@whitepages.com>2013-07-19 14:09:03 -0700
commitbeba8f473fee61747faa0b05d5d486a61f824761 (patch)
tree8b3935684d7ed67a66d9f43721f044b45dfe68f1 /spec
parent78ac800a11fbbcd67125a21c19b0d62465013748 (diff)
downloadchef-beba8f473fee61747faa0b05d5d486a61f824761.tar.gz
Update specs to encompass scm timeout attribute
Diffstat (limited to 'spec')
-rw-r--r--spec/unit/provider/git_spec.rb44
-rw-r--r--spec/unit/resource/scm_spec.rb13
2 files changed, 47 insertions, 10 deletions
diff --git a/spec/unit/provider/git_spec.rb b/spec/unit/provider/git_spec.rb
index 763de240cc..f364238d0f 100644
--- a/spec/unit/provider/git_spec.rb
+++ b/spec/unit/provider/git_spec.rb
@@ -18,7 +18,7 @@
require 'spec_helper'
-describe Chef::Provider::Git do
+describe Chef::Provider::Git, :focus => true do
before(:each) do
STDOUT.stub!(:tty?).and_return(true)
@@ -165,15 +165,39 @@ SHAS
@provider.should respond_to(:revision_slug)
end
- it "runs a clone command with default git options" do
- @resource.user "deployNinja"
- @resource.ssh_wrapper "do_it_this_way.sh"
- expected_cmd = "git clone \"git://github.com/opscode/chef.git\" \"/my/deploy/dir\""
- @provider.should_receive(:shell_out!).with(expected_cmd, :user => "deployNinja",
- :environment =>{"GIT_SSH"=>"do_it_this_way.sh"},
- :log_tag => "git[web2.0 app]" )
-
- @provider.clone
+ context "with an ssh wrapper" do
+ let(:deploy_user) { "deployNinja" }
+ let(:wrapper) { "do_it_this_way.sh" }
+ let(:expected_cmd) { 'git clone "git://github.com/opscode/chef.git" "/my/deploy/dir"' }
+ let(:default_options) do
+ {
+ :user => deploy_user,
+ :environment => { "GIT_SSH" => wrapper },
+ :log_level => :info,
+ :log_tag => "git[web2.0 app]",
+ :live_stream => STDOUT,
+ }
+ end
+ before do
+ @resource.user deploy_user
+ @resource.ssh_wrapper wrapper
+ end
+ context "without a timeout set" do
+ it "clones a repo with default git options" do
+ @provider.should_receive(:shell_out!)
+ .with(expected_cmd, default_options)
+ @provider.clone
+ end
+ end
+ context "with a timeout set" do
+ let (:seconds) { 10 }
+ before { @resource.timeout(seconds) }
+ it "clones a repo with amended git options" do
+ @provider.should_receive(:shell_out!)
+ .with(expected_cmd, default_options.merge(:timeout => seconds))
+ @provider.clone
+ end
+ end
end
it "runs a clone command with escaped destination" do
diff --git a/spec/unit/resource/scm_spec.rb b/spec/unit/resource/scm_spec.rb
index 488d335342..d88a4160e7 100644
--- a/spec/unit/resource/scm_spec.rb
+++ b/spec/unit/resource/scm_spec.rb
@@ -137,6 +137,19 @@ describe Chef::Resource::Scm do
@resource.ssh_wrapper.should be_nil
end
+ describe "when it has a timeout attribute" do
+ let(:ten_seconds) { 10 }
+ before { @resource.timeout(ten_seconds) }
+ it "stores this timeout" do
+ @resource.timeout.should == ten_seconds
+ end
+ end
+ describe "when it has no timeout attribute" do
+ it "should have no default timeout" do
+ @resource.timeout.should be_nil
+ end
+ end
+
describe "when it has repository, revision, user, and group" do
before do
@resource.destination("hell")