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
|
||||
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
|
||||
@ -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
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user