From 7b2d8ed4b3a1a71da59b1aa1859e844c37ba24c2 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Wed, 8 Feb 2017 13:25:10 +0100 Subject: [PATCH] Convert Options test to spec. --- .../cask/cli/options_spec.rb} | 50 +++++++++---------- Library/Homebrew/cask/spec/spec_helper.rb | 32 ++++++++++-- 2 files changed, 50 insertions(+), 32 deletions(-) rename Library/Homebrew/cask/{test/cask/cli/options_test.rb => spec/cask/cli/options_spec.rb} (69%) diff --git a/Library/Homebrew/cask/test/cask/cli/options_test.rb b/Library/Homebrew/cask/spec/cask/cli/options_spec.rb similarity index 69% rename from Library/Homebrew/cask/test/cask/cli/options_test.rb rename to Library/Homebrew/cask/spec/cask/cli/options_spec.rb index d49e7827b7..a4381213a6 100644 --- a/Library/Homebrew/cask/test/cask/cli/options_test.rb +++ b/Library/Homebrew/cask/spec/cask/cli/options_spec.rb @@ -1,10 +1,10 @@ -require "test_helper" +require "spec_helper" describe Hbc::CLI do it "supports setting the appdir" do Hbc::CLI.process_options %w[help --appdir=/some/path/foo] - Hbc.appdir.must_equal Pathname("/some/path/foo") + expect(Hbc.appdir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the appdir from ENV" do @@ -12,13 +12,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.appdir.must_equal Pathname("/some/path/bar") + expect(Hbc.appdir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the prefpanedir" do Hbc::CLI.process_options %w[help --prefpanedir=/some/path/foo] - Hbc.prefpanedir.must_equal Pathname("/some/path/foo") + expect(Hbc.prefpanedir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the prefpanedir from ENV" do @@ -26,13 +26,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.prefpanedir.must_equal Pathname("/some/path/bar") + expect(Hbc.prefpanedir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the qlplugindir" do Hbc::CLI.process_options %w[help --qlplugindir=/some/path/foo] - Hbc.qlplugindir.must_equal Pathname("/some/path/foo") + expect(Hbc.qlplugindir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the qlplugindir from ENV" do @@ -40,13 +40,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.qlplugindir.must_equal Pathname("/some/path/bar") + expect(Hbc.qlplugindir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the colorpickerdir" do Hbc::CLI.process_options %w[help --colorpickerdir=/some/path/foo] - Hbc.colorpickerdir.must_equal Pathname("/some/path/foo") + expect(Hbc.colorpickerdir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the colorpickerdir from ENV" do @@ -54,13 +54,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.colorpickerdir.must_equal Pathname("/some/path/bar") + expect(Hbc.colorpickerdir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the dictionarydir" do Hbc::CLI.process_options %w[help --dictionarydir=/some/path/foo] - Hbc.dictionarydir.must_equal Pathname("/some/path/foo") + expect(Hbc.dictionarydir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the dictionarydir from ENV" do @@ -68,13 +68,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.dictionarydir.must_equal Pathname("/some/path/bar") + expect(Hbc.dictionarydir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the fontdir" do Hbc::CLI.process_options %w[help --fontdir=/some/path/foo] - Hbc.fontdir.must_equal Pathname("/some/path/foo") + expect(Hbc.fontdir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the fontdir from ENV" do @@ -82,13 +82,13 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.fontdir.must_equal Pathname("/some/path/bar") + expect(Hbc.fontdir).to eq(Pathname.new("/some/path/bar")) end it "supports setting the servicedir" do Hbc::CLI.process_options %w[help --servicedir=/some/path/foo] - Hbc.servicedir.must_equal Pathname("/some/path/foo") + expect(Hbc.servicedir).to eq(Pathname.new("/some/path/foo")) end it "supports setting the servicedir from ENV" do @@ -96,36 +96,36 @@ describe Hbc::CLI do Hbc::CLI.process_options %w[help] - Hbc.servicedir.must_equal Pathname("/some/path/bar") + expect(Hbc.servicedir).to eq(Pathname.new("/some/path/bar")) end it "allows additional options to be passed through" do rest = Hbc::CLI.process_options %w[edit foo --create --appdir=/some/path/qux] - Hbc.appdir.must_equal Pathname("/some/path/qux") - rest.must_equal %w[edit foo --create] + expect(Hbc.appdir).to eq(Pathname.new("/some/path/qux")) + expect(rest).to eq(%w[edit foo --create]) end describe "when a mandatory argument is missing" do it "shows a user-friendly error message" do - lambda { + expect { Hbc::CLI.process_options %w[install -f] - }.must_raise Hbc::CaskError + }.to raise_error(Hbc::CaskError) end end describe "given an ambiguous option" do it "shows a user-friendly error message" do - lambda { + expect { Hbc::CLI.process_options %w[edit -c] - }.must_raise Hbc::CaskError + }.to raise_error(Hbc::CaskError) end end describe "--debug" do it "sets the Cask debug method to true" do Hbc::CLI.process_options %w[help --debug] - Hbc.debug.must_equal true + expect(Hbc.debug).to be true Hbc.debug = false end end @@ -133,12 +133,8 @@ describe Hbc::CLI do describe "--help" do it "sets the Cask help method to true" do Hbc::CLI.process_options %w[foo --help] - Hbc.help.must_equal true + expect(Hbc.help).to be true Hbc.help = false end end - - after do - ENV["HOMEBREW_CASK_OPTS"] = nil - end end diff --git a/Library/Homebrew/cask/spec/spec_helper.rb b/Library/Homebrew/cask/spec/spec_helper.rb index 059d13a3a9..13ed746b58 100644 --- a/Library/Homebrew/cask/spec/spec_helper.rb +++ b/Library/Homebrew/cask/spec/spec_helper.rb @@ -37,11 +37,33 @@ FileUtils.ln_s Pathname.new(ENV["HOMEBREW_LIBRARY"]).join("Taps", "caskroom", "h RSpec.configure do |config| config.order = :random config.include(Test::Helper::Shutup) - config.after(:each) do - FileUtils.rm_rf [ - Hbc.appdir.children, - Hbc.caskroom.children, - ] + config.around(:each) do |example| + begin + @__appdir = Hbc.appdir + @__caskroom = Hbc.caskroom + @__prefpanedir = Hbc.prefpanedir + @__qlplugindir = Hbc.qlplugindir + @__servicedir = Hbc.servicedir + + @__argv = ARGV.dup + @__env = ENV.to_hash # dup doesn't work on ENV + + example.run + ensure + ARGV.replace(@__argv) + ENV.replace(@__env) + + Hbc.appdir = @__appdir + Hbc.caskroom = @__caskroom + Hbc.prefpanedir = @__prefpanedir + Hbc.qlplugindir = @__qlplugindir + Hbc.servicedir = @__servicedir + + FileUtils.rm_rf [ + Hbc.appdir.children, + Hbc.caskroom.children, + ] + end end end