diff options
| author | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-10 19:58:43 -0700 |
|---|---|---|
| committer | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-12 16:12:08 -0700 |
| commit | 4eccd53da90593fad1b929eeea3b5d7d252c553e (patch) | |
| tree | 14a7f80fe98b554bd7599b8cb84b05089747bf96 /spec | |
| parent | 1b4d7a51d10b217c7f67f3876242fff6dc694faa (diff) | |
| download | puppet-4eccd53da90593fad1b929eeea3b5d7d252c553e.tar.gz puppet-4eccd53da90593fad1b929eeea3b5d7d252c553e.tar.xz puppet-4eccd53da90593fad1b929eeea3b5d7d252c553e.zip | |
(#6962) Implement Face#summary support for the help face.
We now use the summary information available in other faces as part of
emitting a list our list of available subcommands. This is seldom used in
faces, but enough emit the information to prove the concept.
Reviewed-By: Matt Robinson <matt@puppetlabs.com>
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/lib/puppet/faces/huzzah.rb | 1 | ||||
| -rw-r--r-- | spec/spec_helper.rb | 7 | ||||
| -rw-r--r-- | spec/unit/faces/help_spec.rb | 21 |
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 |
