summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff McCune <jeff@puppetlabs.com>2013-04-11 17:55:40 -0700
committerJeff McCune <jeff@puppetlabs.com>2013-04-11 17:55:40 -0700
commitd2e692dce3794a57da78bb4624b182d1b379ae6a (patch)
tree6cc20a64cd311a271f7a937d12e1a27c03fc81e9
parentddad4455cc914862f16c2e8cae96812e244b0a1d (diff)
downloadpuppet-stdlib-d2e692dce3794a57da78bb4624b182d1b379ae6a.tar.gz
puppet-stdlib-d2e692dce3794a57da78bb4624b182d1b379ae6a.tar.bz2
Add behavior example for anchor refresh propagation
Without this patch we don't have a spec test to make sure the anchor resource type passes notify events along. This patch addresses the problem by using RSpec Puppet to build a catalog, apply the catalog, then pull a resource out of the transaction and make sure the resource was triggered.
-rw-r--r--spec/classes/anchor_spec.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/classes/anchor_spec.rb b/spec/classes/anchor_spec.rb
new file mode 100644
index 0000000..2dd17de
--- /dev/null
+++ b/spec/classes/anchor_spec.rb
@@ -0,0 +1,32 @@
+require 'puppet'
+require 'rspec-puppet'
+
+describe "anchorrefresh" do
+ let(:node) { 'testhost.example.com' }
+ let :pre_condition do
+ <<-ANCHORCLASS
+class anchored {
+ anchor { 'anchored::begin': }
+ ~> anchor { 'anchored::end': }
+}
+
+class anchorrefresh {
+ notify { 'first': }
+ ~> class { 'anchored': }
+ ~> anchor { 'final': }
+}
+ ANCHORCLASS
+ end
+
+ def apply_catalog_and_return_exec_rsrc
+ catalog = subject.to_ral
+ transaction = catalog.apply
+ transaction.resource_status("Anchor[final]")
+ end
+
+ it 'propagates events through the anchored class' do
+ resource = apply_catalog_and_return_exec_rsrc
+
+ expect(resource.restarted).to eq(true)
+ end
+end