newer pg module
[mirror/dsa-puppet.git] / 3rdparty / modules / postgresql / spec / acceptance / server / recovery_spec.rb
diff --git a/3rdparty/modules/postgresql/spec/acceptance/server/recovery_spec.rb b/3rdparty/modules/postgresql/spec/acceptance/server/recovery_spec.rb
new file mode 100644 (file)
index 0000000..b27a5c5
--- /dev/null
@@ -0,0 +1,61 @@
+require 'spec_helper_acceptance'
+
+describe 'postgresql::server::recovery', :unless => UNSUPPORTED_PLATFORMS.include?(fact('osfamily')) do
+  describe 'should manage recovery' do
+    after(:all) do
+      pp = <<-EOS.unindent
+        file { '/tmp/recovery.conf':
+          ensure => absent,
+        }
+      EOS
+
+      apply_manifest(pp, :catch_failures => true)
+    end
+
+    it 'adds conf file' do
+      pp = <<-EOS.unindent
+        class { 'postgresql::globals':
+          recovery_conf_path => '/tmp/recovery.conf',
+          manage_recovery_conf => true,
+        }
+
+        class { 'postgresql::server': }
+
+        # Create a recovery.conf file
+        postgresql::server::recovery { "recovery.conf":
+          restore_command          => 'restore_command',
+          recovery_target_timeline => 'recovery_target_timeline',
+        }
+      EOS
+
+      apply_manifest(pp, :catch_failures => true)
+      apply_manifest(pp, :catch_changes => true)
+    end
+
+    describe file('/tmp/recovery.conf') do
+      it { is_expected.to be_file }
+      it { is_expected.to contain /restore_command = 'restore_command'/ }
+      it { is_expected.to contain /recovery_target_timeline = 'recovery_target_timeline'/ }
+    end
+  end
+
+  describe 'should not manage recovery' do
+    it 'does not add conf file' do
+      pp = <<-EOS.unindent
+        class { 'postgresql::globals':
+          manage_recovery_conf => false,
+        }
+
+        class { 'postgresql::server': }
+      EOS
+
+      apply_manifest(pp, :catch_failures => true)
+      apply_manifest(pp, :catch_changes => true)
+    end
+
+    describe file('/tmp/recovery.conf') do
+      it { is_expected.not_to be_file }
+    end
+  end
+end
+