aboutsummaryrefslogtreecommitdiff
path: root/spec/acceptance/tests
diff options
context:
space:
mode:
authorJosh Cooper <josh@puppet.com>2018-04-26 11:41:34 -0700
committerGitHub <noreply@github.com>2018-04-26 11:41:34 -0700
commit81d2cf81cd02c09f53774c1b95ae2de474b28b80 (patch)
tree4997f732281a7e0cb5ff33a745663cc5cffed741 /spec/acceptance/tests
parent7c51be1c0d8ace7cb679f16ee4d8e3697ea95ae8 (diff)
parentbeb0aa2b549ed4b6f90d82a864a443e35c102b38 (diff)
downloadpuppet-mailalias_core-81d2cf81cd02c09f53774c1b95ae2de474b28b80.tar.gz
puppet-mailalias_core-81d2cf81cd02c09f53774c1b95ae2de474b28b80.tar.bz2
Merge pull request #1 from melissa/maint/master/initial-commits
Maint/master/initial commits
Diffstat (limited to 'spec/acceptance/tests')
-rw-r--r--spec/acceptance/tests/create_spec.rb31
-rw-r--r--spec/acceptance/tests/destroy_spec.rb41
-rw-r--r--spec/acceptance/tests/modify_spec.rb42
-rw-r--r--spec/acceptance/tests/query_spec.rb35
4 files changed, 149 insertions, 0 deletions
diff --git a/spec/acceptance/tests/create_spec.rb b/spec/acceptance/tests/create_spec.rb
new file mode 100644
index 0000000..82adfec
--- /dev/null
+++ b/spec/acceptance/tests/create_spec.rb
@@ -0,0 +1,31 @@
+require 'spec_helper_acceptance'
+
+RSpec.context 'Mailalias: should create an email alias' do
+ name = "pl#{rand(999_999).to_i}"
+
+ before(:all) do
+ non_windows_agents.each do |agent|
+ on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1])
+ end
+ end
+
+ after(:all) do
+ non_windows_agents.each do |agent|
+ on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1])
+ end
+ end
+
+ non_windows_agents.each do |agent|
+ it 'creates a mailalias with puppet' do
+ args = ['ensure=present',
+ 'recipient="foo,bar,baz"']
+ on(agent, puppet_resource('mailalias', name, args))
+ end
+
+ it 'verifies the alias exists' do
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file')
+ end
+ end
+ end
+end
diff --git a/spec/acceptance/tests/destroy_spec.rb b/spec/acceptance/tests/destroy_spec.rb
new file mode 100644
index 0000000..0f805a5
--- /dev/null
+++ b/spec/acceptance/tests/destroy_spec.rb
@@ -0,0 +1,41 @@
+require 'spec_helper_acceptance'
+
+RSpec.context 'should delete an email alias' do
+ name = "pl#{rand(999_999).to_i}"
+
+ before(:all) do
+ non_windows_agents.each do |agent|
+ # (setup) backup alias file
+ on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1])
+
+ # (setup) create a mailalias
+ on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases")
+
+ # (setup) verify the alias exists
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file')
+ end
+ end
+ end
+
+ after(:all) do
+ non_windows_agents.each do |agent|
+ # (teardown) restore the alias file
+ on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1])
+ end
+ end
+
+ non_windows_agents.each do |agent|
+ it 'deletes the aliases database with puppet' do
+ args = ['ensure=absent',
+ 'recipient="foo,bar,baz"']
+ on(agent, puppet_resource('mailalias', name, args))
+ end
+
+ it 'verifies the alias is absent' do
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_no_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias was not removed from aliases file')
+ end
+ end
+ end
+end
diff --git a/spec/acceptance/tests/modify_spec.rb b/spec/acceptance/tests/modify_spec.rb
new file mode 100644
index 0000000..f4ea7bf
--- /dev/null
+++ b/spec/acceptance/tests/modify_spec.rb
@@ -0,0 +1,42 @@
+require 'spec_helper_acceptance'
+
+RSpec.context 'should modify an email alias' do
+ name = "pl#{rand(999_999).to_i}"
+
+ before(:all) do
+ non_windows_agents.each do |agent|
+ #------- SETUP -------#
+ # (setup) backup alias file
+ on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1])
+
+ # (setup) create a mailalias
+ on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases")
+
+ # (setup) verify the alias exists
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file')
+ end
+ end
+ end
+
+ after(:all) do
+ non_windows_agents.each do |agent|
+ # (teardown) restore the alias file
+ on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1])
+ end
+ end
+
+ non_windows_agents.each do |agent|
+ it 'modifies the aliases database with puppet' do
+ args = ['ensure=present',
+ 'recipient="foo,bar,baz,blarvitz"']
+ on(agent, puppet_resource('mailalias', name, args))
+ end
+
+ it 'verifies the updated alias is present' do
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_match(%r{#{name}:.*foo,bar,baz,blarvitz}, res.stdout, 'updated mailalias not in aliases file')
+ end
+ end
+ end
+end
diff --git a/spec/acceptance/tests/query_spec.rb b/spec/acceptance/tests/query_spec.rb
new file mode 100644
index 0000000..17e0bbf
--- /dev/null
+++ b/spec/acceptance/tests/query_spec.rb
@@ -0,0 +1,35 @@
+require 'spec_helper_acceptance'
+
+RSpec.context 'should be able to find an exisitng email alias' do
+ name = "pl#{rand(999_999).to_i}"
+
+ before(:all) do
+ non_windows_agents.each do |agent|
+ # (setup) backup alias file
+ on(agent, 'cp /etc/aliases /tmp/aliases', acceptable_exit_codes: [0, 1])
+
+ # (setup) create a mailalias
+ on(agent, "echo '#{name}: foo,bar,baz' >> /etc/aliases")
+
+ # (setup) verify the alias exists
+ on(agent, 'cat /etc/aliases') do |res|
+ assert_match(%r{#{name}:.*foo,bar,baz}, res.stdout, 'mailalias not in aliases file')
+ end
+ end
+ end
+
+ after(:all) do
+ non_windows_agents.each do |agent|
+ # (teardown) restore the alias file
+ on(agent, 'mv /tmp/aliases /etc/aliases', acceptable_exit_codes: [0, 1])
+ end
+ end
+
+ non_windows_agents.each do |agent|
+ it 'queries for the mail alias with puppet' do
+ on(agent, puppet_resource('mailalias', name)) do
+ fail_test "didn't find the scheduled_task #{name}" unless stdout.include? 'present'
+ end
+ end
+ end
+end