Convert Options test to spec.
This commit is contained in:
parent
bcaa13b750
commit
7b2d8ed4b3
@ -1,10 +1,10 @@
|
|||||||
require "test_helper"
|
require "spec_helper"
|
||||||
|
|
||||||
describe Hbc::CLI do
|
describe Hbc::CLI do
|
||||||
it "supports setting the appdir" do
|
it "supports setting the appdir" do
|
||||||
Hbc::CLI.process_options %w[help --appdir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the appdir from ENV" do
|
it "supports setting the appdir from ENV" do
|
||||||
@ -12,13 +12,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the prefpanedir" do
|
it "supports setting the prefpanedir" do
|
||||||
Hbc::CLI.process_options %w[help --prefpanedir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the prefpanedir from ENV" do
|
it "supports setting the prefpanedir from ENV" do
|
||||||
@ -26,13 +26,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the qlplugindir" do
|
it "supports setting the qlplugindir" do
|
||||||
Hbc::CLI.process_options %w[help --qlplugindir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the qlplugindir from ENV" do
|
it "supports setting the qlplugindir from ENV" do
|
||||||
@ -40,13 +40,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the colorpickerdir" do
|
it "supports setting the colorpickerdir" do
|
||||||
Hbc::CLI.process_options %w[help --colorpickerdir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the colorpickerdir from ENV" do
|
it "supports setting the colorpickerdir from ENV" do
|
||||||
@ -54,13 +54,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the dictionarydir" do
|
it "supports setting the dictionarydir" do
|
||||||
Hbc::CLI.process_options %w[help --dictionarydir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the dictionarydir from ENV" do
|
it "supports setting the dictionarydir from ENV" do
|
||||||
@ -68,13 +68,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the fontdir" do
|
it "supports setting the fontdir" do
|
||||||
Hbc::CLI.process_options %w[help --fontdir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the fontdir from ENV" do
|
it "supports setting the fontdir from ENV" do
|
||||||
@ -82,13 +82,13 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the servicedir" do
|
it "supports setting the servicedir" do
|
||||||
Hbc::CLI.process_options %w[help --servicedir=/some/path/foo]
|
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
|
end
|
||||||
|
|
||||||
it "supports setting the servicedir from ENV" do
|
it "supports setting the servicedir from ENV" do
|
||||||
@ -96,36 +96,36 @@ describe Hbc::CLI do
|
|||||||
|
|
||||||
Hbc::CLI.process_options %w[help]
|
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
|
end
|
||||||
|
|
||||||
it "allows additional options to be passed through" do
|
it "allows additional options to be passed through" do
|
||||||
rest = Hbc::CLI.process_options %w[edit foo --create --appdir=/some/path/qux]
|
rest = Hbc::CLI.process_options %w[edit foo --create --appdir=/some/path/qux]
|
||||||
|
|
||||||
Hbc.appdir.must_equal Pathname("/some/path/qux")
|
expect(Hbc.appdir).to eq(Pathname.new("/some/path/qux"))
|
||||||
rest.must_equal %w[edit foo --create]
|
expect(rest).to eq(%w[edit foo --create])
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "when a mandatory argument is missing" do
|
describe "when a mandatory argument is missing" do
|
||||||
it "shows a user-friendly error message" do
|
it "shows a user-friendly error message" do
|
||||||
lambda {
|
expect {
|
||||||
Hbc::CLI.process_options %w[install -f]
|
Hbc::CLI.process_options %w[install -f]
|
||||||
}.must_raise Hbc::CaskError
|
}.to raise_error(Hbc::CaskError)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "given an ambiguous option" do
|
describe "given an ambiguous option" do
|
||||||
it "shows a user-friendly error message" do
|
it "shows a user-friendly error message" do
|
||||||
lambda {
|
expect {
|
||||||
Hbc::CLI.process_options %w[edit -c]
|
Hbc::CLI.process_options %w[edit -c]
|
||||||
}.must_raise Hbc::CaskError
|
}.to raise_error(Hbc::CaskError)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "--debug" do
|
describe "--debug" do
|
||||||
it "sets the Cask debug method to true" do
|
it "sets the Cask debug method to true" do
|
||||||
Hbc::CLI.process_options %w[help --debug]
|
Hbc::CLI.process_options %w[help --debug]
|
||||||
Hbc.debug.must_equal true
|
expect(Hbc.debug).to be true
|
||||||
Hbc.debug = false
|
Hbc.debug = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -133,12 +133,8 @@ describe Hbc::CLI do
|
|||||||
describe "--help" do
|
describe "--help" do
|
||||||
it "sets the Cask help method to true" do
|
it "sets the Cask help method to true" do
|
||||||
Hbc::CLI.process_options %w[foo --help]
|
Hbc::CLI.process_options %w[foo --help]
|
||||||
Hbc.help.must_equal true
|
expect(Hbc.help).to be true
|
||||||
Hbc.help = false
|
Hbc.help = false
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
after do
|
|
||||||
ENV["HOMEBREW_CASK_OPTS"] = nil
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
@ -37,13 +37,35 @@ FileUtils.ln_s Pathname.new(ENV["HOMEBREW_LIBRARY"]).join("Taps", "caskroom", "h
|
|||||||
RSpec.configure do |config|
|
RSpec.configure do |config|
|
||||||
config.order = :random
|
config.order = :random
|
||||||
config.include(Test::Helper::Shutup)
|
config.include(Test::Helper::Shutup)
|
||||||
config.after(:each) do
|
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 [
|
FileUtils.rm_rf [
|
||||||
Hbc.appdir.children,
|
Hbc.appdir.children,
|
||||||
Hbc.caskroom.children,
|
Hbc.caskroom.children,
|
||||||
]
|
]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
module Hbc
|
module Hbc
|
||||||
class NeverSudoSystemCommand < SystemCommand
|
class NeverSudoSystemCommand < SystemCommand
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user