summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/integration/recipes/resource_action_spec.rb70
1 files changed, 49 insertions, 21 deletions
diff --git a/spec/integration/recipes/resource_action_spec.rb b/spec/integration/recipes/resource_action_spec.rb
index b8c533b31d..5778c467c5 100644
--- a/spec/integration/recipes/resource_action_spec.rb
+++ b/spec/integration/recipes/resource_action_spec.rb
@@ -9,8 +9,8 @@ describe "Resource.action" do
shared_context "ActionJackson" do
it "the default action is the first declared action" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
end
EOM
expect(ActionJackson.ran_action).to eq :access_recipe_dsl
@@ -19,8 +19,8 @@ describe "Resource.action" do
it "the action can access recipe DSL" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_recipe_dsl
end
EOM
@@ -30,8 +30,8 @@ describe "Resource.action" do
it "the action can access attributes" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_attribute
end
EOM
@@ -41,8 +41,8 @@ describe "Resource.action" do
it "the action can access public methods" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_method
end
EOM
@@ -52,8 +52,8 @@ describe "Resource.action" do
it "the action can access protected methods" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_protected_method
end
EOM
@@ -64,8 +64,8 @@ describe "Resource.action" do
it "the action cannot access private methods" do
expect {
converge(<<-EOM, __FILE__, __LINE__+1)
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_private_method
end
EOM
@@ -75,8 +75,8 @@ describe "Resource.action" do
it "the action cannot access resource instance variables" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_instance_variable
end
EOM
@@ -86,14 +86,14 @@ describe "Resource.action" do
it "the action does not compile until the prior resource has converged" do
converge <<-EOM, __FILE__, __LINE__+1
- ruby_block 'wow' do
+ ruby_block "wow" do
block do
- ResourceActionSpec::ActionJackson.ruby_block_converged = 'ruby_block_converged!'
+ ResourceActionSpec::ActionJackson.ruby_block_converged = "ruby_block_converged!"
end
end
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_class_method
end
EOM
@@ -103,12 +103,12 @@ describe "Resource.action" do
it "the action's resources converge before the next resource converges" do
converge <<-EOM, __FILE__, __LINE__+1
- #{resource_dsl} 'hi' do
- foo 'foo!'
+ #{resource_dsl} "hi" do
+ foo "foo!"
action :access_attribute
end
- ruby_block 'wow' do
+ ruby_block "wow" do
block do
ResourceActionSpec::ActionJackson.ruby_block_converged = ResourceActionSpec::ActionJackson.succeeded
end
@@ -436,6 +436,34 @@ describe "Resource.action" do
end
+ context "With a resource with a set_or_return property named group (same name as a resource)" do
+ class ResourceActionSpecWithGroupAction < Chef::Resource
+ resource_name :resource_action_spec_set_group_to_nil
+ action :set_group_to_nil do
+ # Access x during converge to ensure that we emit no warnings there
+ resource_action_spec_with_group "hi" do
+ group nil
+ action :nothing
+ end
+ end
+ end
+
+ class ResourceActionSpecWithGroup < Chef::Resource
+ resource_name :resource_action_spec_with_group
+ def group(value=nil)
+ set_or_return(:group, value, {})
+ end
+ end
+
+ it "Setting group to nil in an action does not emit a warning about it being defined in two places" do
+ expect_recipe {
+ resource_action_spec_set_group_to_nil "hi" do
+ action :set_group_to_nil
+ end
+ }.to emit_no_warnings_or_errors
+ end
+ end
+
context "When a resource has a property with the same name as another resource" do
class HasPropertyNamedTemplate < Chef::Resource
use_automatic_resource_name