summaryrefslogtreecommitdiff
path: root/spec/unit/cookbook
diff options
context:
space:
mode:
authordanielsdeleo <dan@getchef.com>2014-08-07 13:44:40 -0700
committerdanielsdeleo <dan@getchef.com>2014-08-12 11:03:10 -0700
commit89427a59886b0724a5a1101dde7ea1a1def1c67a (patch)
tree502cccbf5f09aa9b359cf1e0c22867220599a98c /spec/unit/cookbook
parent13c67e0dfbde2d366f0000ef036a68f374e4cef9 (diff)
downloadchef-89427a59886b0724a5a1101dde7ea1a1def1c67a.tar.gz
Add validation to Metadata
exposes #valid? and #errors methods to check validity.
Diffstat (limited to 'spec/unit/cookbook')
-rw-r--r--spec/unit/cookbook/metadata_spec.rb32
1 files changed, 32 insertions, 0 deletions
diff --git a/spec/unit/cookbook/metadata_spec.rb b/spec/unit/cookbook/metadata_spec.rb
index 0352c17350..e61c85b42b 100644
--- a/spec/unit/cookbook/metadata_spec.rb
+++ b/spec/unit/cookbook/metadata_spec.rb
@@ -142,6 +142,38 @@ describe Chef::Cookbook::Metadata do
end
+ describe "validation" do
+
+ context "when no required fields are set" do
+
+ it "is not valid" do
+ metadata.should_not be_valid
+ end
+
+ it "has a list of validation errors" do
+ expected_errors = ["The `name' attribute is required in cookbook metadata"]
+ metadata.errors.should eq(expected_errors)
+ end
+
+ end
+
+ context "when all required fields are set" do
+ before do
+ metadata.name "a-valid-name"
+ end
+
+ it "is valid" do
+ metadata.should be_valid
+ end
+
+ it "has no validation errors" do
+ metadata.errors.should be_empty
+ end
+
+ end
+
+ end
+
describe "adding a supported platform" do
it "should support adding a supported platform with a single expression" do
metadata.supports("ubuntu", ">= 8.04")