summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/chef/resource/lwrp_base.rb13
-rw-r--r--spec/unit/lwrp_spec.rb21
2 files changed, 33 insertions, 1 deletions
diff --git a/lib/chef/resource/lwrp_base.rb b/lib/chef/resource/lwrp_base.rb
index 5b67941a8b..0c016695db 100644
--- a/lib/chef/resource/lwrp_base.rb
+++ b/lib/chef/resource/lwrp_base.rb
@@ -112,10 +112,21 @@ class Chef
if action_names.empty?
defined?(@actions) ? @actions : from_superclass(:actions, []).dup
else
- @actions = action_names
+ # BC-compat way for checking if actions have already been defined
+ if defined?(@actions)
+ @actions.push(*action_names)
+ else
+ @actions = action_names
+ end
end
end
+ # @deprecated
+ def self.valid_actions(*args)
+ Chef::Log.warn("`valid_actions' is deprecated, please use actions `instead'!")
+ actions(*args)
+ end
+
# Set the run context on the class. Used to provide access to the node
# during class definition.
def self.run_context=(run_context)
diff --git a/spec/unit/lwrp_spec.rb b/spec/unit/lwrp_spec.rb
index 960aff3c36..bbc54645cf 100644
--- a/spec/unit/lwrp_spec.rb
+++ b/spec/unit/lwrp_spec.rb
@@ -231,6 +231,27 @@ describe "LWRP" do
expect(child.default_action).to eq(:dont_eat)
end
end
+
+ context "when actions are already defined" do
+ let(:child) do
+ Class.new(parent) do
+ actions :eat
+ actions :sleep
+ actions :drink
+ end
+ end
+
+ def raise_if_deprecated!
+ if Chef::VERSION.split('.').first.to_i > 11
+ raise "This test should be removed and the associated code should be removed!"
+ end
+ end
+
+ it "ammends actions when they are already defined" do
+ raise_if_deprecated!
+ expect(child.actions).to eq([:eat, :sleep, :drink])
+ end
+ end
end
end