summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/acceptance/clone_repo_spec.rb40
-rw-r--r--spec/unit/puppet/provider/vcsrepo/git_spec.rb22
2 files changed, 52 insertions, 10 deletions
diff --git a/spec/acceptance/clone_repo_spec.rb b/spec/acceptance/clone_repo_spec.rb
index a989661..23b0b31 100644
--- a/spec/acceptance/clone_repo_spec.rb
+++ b/spec/acceptance/clone_repo_spec.rb
@@ -318,6 +318,36 @@ describe 'clones a remote repo' do
describe file("#{tmpdir}/testrepo_force/.git") do
it { should be_directory }
end
+
+ context 'and noop' do
+ let(:repo_name) do
+ 'testrepo_already_exists'
+ end
+ before(:all) do
+ shell("mkdir #{tmpdir}/#{repo_name}")
+ shell("cd #{tmpdir}/#{repo_name} && git init")
+ shell("cd #{tmpdir}/#{repo_name} && touch a && git add a && git commit -m 'a'")
+ end
+ after(:all) do
+ shell("rm -rf #{tmpdir}/#{repo_name}")
+ end
+
+ it 'applies the manifest' do
+ pp = <<-EOS
+ vcsrepo { "#{tmpdir}/#{repo_name}":
+ ensure => present,
+ source => "file://#{tmpdir}/testrepo.git",
+ provider => git,
+ force => true,
+ noop => true,
+ }
+ EOS
+
+ apply_manifest_on(host, pp, :catch_changes => true) do |r|
+ expect(r.stdout).to match(/Noop Mode/)
+ end
+ end
+ end
end
context 'as a user' do
@@ -474,15 +504,5 @@ describe 'clones a remote repo' do
apply_manifest(pp, :catch_failures => true)
apply_manifest(pp, :catch_changes => true)
end
-
- after(:all) do
- pp = <<-EOS
- user { 'testuser-ssh':
- ensure => absent,
- managehome => true,
- }
- EOS
- apply_manifest(pp, :catch_failures => true)
- end
end
end
diff --git a/spec/unit/puppet/provider/vcsrepo/git_spec.rb b/spec/unit/puppet/provider/vcsrepo/git_spec.rb
index a753610..2fd63f0 100644
--- a/spec/unit/puppet/provider/vcsrepo/git_spec.rb
+++ b/spec/unit/puppet/provider/vcsrepo/git_spec.rb
@@ -175,6 +175,28 @@ branches
provider.expects(:git).with('checkout', '--force', resource.value(:revision))
provider.create
end
+ it "should warn about destroying it using force and noop attribute" do
+ resource[:force] = true
+ resource[:noop] = true
+ resource.delete(:revision)
+ provider.expects(:working_copy_exists?).returns(true)
+
+ provider.expects(:destroy).never
+ provider.expects(:create).never
+ Puppet::Type::Vcsrepo::Ensure.any_instance.expects(:send_log).with(:notice, "Noop Mode - Would have deleted repository and re-created from latest")
+ provider.resource.retrieve
+ end
+ it "should warn about destroying it using force and global noop" do
+ resource[:force] = true
+ Puppet[:noop] = true
+ resource.delete(:revision)
+ provider.expects(:working_copy_exists?).returns(true)
+
+ provider.expects(:destroy).never
+ provider.expects(:create).never
+ Puppet::Type::Vcsrepo::Ensure.any_instance.expects(:send_log).with(:notice, "Noop Mode - Would have deleted repository and re-created from latest")
+ provider.resource.retrieve
+ end
end
context "when the path is not empty and not a repository" do