From ff2239509d53f86ca48330ddfc6f24fe03ba9768 Mon Sep 17 00:00:00 2001 From: Martin Schimandl Date: Sat, 7 Oct 2017 21:32:40 +0200 Subject: [PATCH] Change behaviour of 'cask _stanza' command. Add tests for 'cask _stanza' command --- .../cask/lib/hbc/cli/internal_stanza.rb | 8 +++++- .../test/cask/cli/internal_stanza_spec.rb | 28 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 Library/Homebrew/test/cask/cli/internal_stanza_spec.rb diff --git a/Library/Homebrew/cask/lib/hbc/cli/internal_stanza.rb b/Library/Homebrew/cask/lib/hbc/cli/internal_stanza.rb index b0812d27c4..411170010c 100644 --- a/Library/Homebrew/cask/lib/hbc/cli/internal_stanza.rb +++ b/Library/Homebrew/cask/lib/hbc/cli/internal_stanza.rb @@ -71,10 +71,16 @@ module Hbc next end + if value == nil || (value.kind_of?(Array) && value.empty?) + opoo "no such stanza '#{stanza}' on Cask '#{cask}'" unless quiet? + puts "" + raise ArgumentError, "no such stanza '#{stanza}' on Cask '#{cask}'" + end + if artifact_name && !value.key?(artifact_name) opoo "no such stanza '#{artifact_name}' on Cask '#{cask}'" unless quiet? puts "" - next + raise ArgumentError, "no such stanza '#{artifact_name}' on Cask '#{cask}'" end if stanza == :artifacts diff --git a/Library/Homebrew/test/cask/cli/internal_stanza_spec.rb b/Library/Homebrew/test/cask/cli/internal_stanza_spec.rb new file mode 100644 index 0000000000..77b065567e --- /dev/null +++ b/Library/Homebrew/test/cask/cli/internal_stanza_spec.rb @@ -0,0 +1,28 @@ +describe Hbc::CLI::InternalStanza, :cask do + + it "shows stanza of the Specified Cask" do + command = described_class.new("gpg", "with-gpg"); + command.run + # TODO check result + end + + it "raises an exception when stanza is invalid" do + expect { + described_class.new("invalid_stanza", "with-gpg"); + }.to raise_error(/Illegal stanza/); + end + + it "raises an exception when normal stanza is not present on cask" do + command = described_class.new("caveats", "with-gpg"); + expect { + command.run + }.to raise_error(/no such stanza/) + end + + it "raises an exception when artifact stanza is not present on cask" do + command = described_class.new("zap", "with-gpg"); + expect { + command.run + }.to raise_error(/no such stanza/) + end +end