summaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/puppet/faces/huzzah.rb1
-rw-r--r--spec/spec_helper.rb7
-rw-r--r--spec/unit/faces/help_spec.rb21
3 files changed, 29 insertions, 0 deletions
diff --git a/spec/lib/puppet/faces/huzzah.rb b/spec/lib/puppet/faces/huzzah.rb
index 735004475..e86730250 100644
--- a/spec/lib/puppet/faces/huzzah.rb
+++ b/spec/lib/puppet/faces/huzzah.rb
@@ -1,4 +1,5 @@
require 'puppet/faces'
Puppet::Faces.define(:huzzah, '2.0.1') do
+ summary "life is a thing for celebration"
action :bar do "is where beer comes from" end
end
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index d28cb2504..1187c1caf 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -7,6 +7,7 @@ ARGV.clear
require 'puppet'
require 'mocha'
gem 'rspec', '>=2.0.0'
+require 'rspec/expectations'
# So everyone else doesn't have to include this base constant.
module PuppetSpec
@@ -65,3 +66,9 @@ RSpec.configure do |config|
GC.enable
end
end
+
+RSpec::Matchers.define :have_matching_element do |expected|
+ match do |actual|
+ actual.any? { |item| item =~ expected }
+ end
+end
diff --git a/spec/unit/faces/help_spec.rb b/spec/unit/faces/help_spec.rb
index 5b611a0ad..ad553dc3a 100644
--- a/spec/unit/faces/help_spec.rb
+++ b/spec/unit/faces/help_spec.rb
@@ -41,4 +41,25 @@ describe Puppet::Faces[:help, '0.0.1'] do
face = Puppet::Faces[:huzzah, :current]
subject.help(:huzzah, face.version).should == subject.help(:huzzah, :current)
end
+
+ context "when listing subcommands" do
+ subject { Puppet::Faces[:help, :current].help }
+
+ # Check a precondition for the next block; if this fails you have
+ # something odd in your set of faces, and we skip testing things that
+ # matter. --daniel 2011-04-10
+ it "should have at least one face with a summary" do
+ Puppet::Faces.faces.should be_any do |name|
+ Puppet::Faces[name, :current].summary
+ end
+ end
+
+ Puppet::Faces.faces.each do |name|
+ face = Puppet::Faces[name, :current]
+ summary = face.summary
+
+ it { should have_matching_element %r{ #{name} } }
+ it { should have_matching_element %r{ #{name} +#{summary}} } if summary
+ end
+ end
end