named args: add method tests
This commit is contained in:
parent
13bc69385c
commit
c8016f6c0a
112
Library/Homebrew/test/cli/named_args_spec.rb
Normal file
112
Library/Homebrew/test/cli/named_args_spec.rb
Normal file
@ -0,0 +1,112 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "cli/named_args"
|
||||
|
||||
describe Homebrew::CLI::NamedArgs do
|
||||
let(:foo) do
|
||||
formula "foo" do
|
||||
url "https://brew.sh"
|
||||
version "1.0"
|
||||
end
|
||||
end
|
||||
|
||||
let(:foo_keg) do
|
||||
path = (HOMEBREW_CELLAR/"foo/1.0").resolved_path
|
||||
mkdir_p path
|
||||
Keg.new(path)
|
||||
end
|
||||
|
||||
let(:bar) do
|
||||
formula "bar" do
|
||||
url "https://brew.sh"
|
||||
version "1.0"
|
||||
end
|
||||
end
|
||||
|
||||
let(:bar_keg) do
|
||||
path = (HOMEBREW_CELLAR/"bar/1.0").resolved_path
|
||||
mkdir_p path
|
||||
Keg.new(path)
|
||||
end
|
||||
|
||||
let(:baz) do
|
||||
Cask::CaskLoader.load(+<<~RUBY)
|
||||
cask "baz" do
|
||||
version "1.0"
|
||||
end
|
||||
RUBY
|
||||
end
|
||||
|
||||
describe "#to_formulae" do
|
||||
it "returns formulae" do
|
||||
allow(Formulary).to receive(:loader_for).and_call_original
|
||||
stub_formula_loader foo
|
||||
stub_formula_loader bar
|
||||
|
||||
expect(described_class.new("foo", "bar").to_formulae).to eq [foo, bar]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_formulae_and_casks" do
|
||||
it "returns formulae and casks" do
|
||||
allow(Formulary).to receive(:loader_for).and_call_original
|
||||
stub_formula_loader foo
|
||||
stub_cask_loader baz
|
||||
|
||||
expect(described_class.new("foo", "baz").to_formulae_and_casks).to eq [foo, baz]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_resolved_formulae" do
|
||||
it "returns resolved formulae" do
|
||||
allow(Formulary).to receive(:resolve).and_return(foo, bar)
|
||||
|
||||
expect(described_class.new("foo", "bar").to_resolved_formulae).to eq [foo, bar]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_resolved_formulae_to_casks" do
|
||||
it "returns resolved formulae, as well as casks" do
|
||||
allow(Formulary).to receive(:resolve).and_call_original
|
||||
allow(Formulary).to receive(:resolve).with("foo", any_args).and_return foo
|
||||
stub_cask_loader baz
|
||||
|
||||
resolved_formulae, casks = described_class.new("foo", "baz").to_resolved_formulae_to_casks
|
||||
|
||||
expect(resolved_formulae).to eq [foo]
|
||||
expect(casks).to eq [baz]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_casks" do
|
||||
it "returns casks" do
|
||||
stub_cask_loader baz
|
||||
|
||||
expect(described_class.new("baz").to_casks).to eq [baz]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_kegs" do
|
||||
it "returns kegs" do
|
||||
named_args = described_class.new("foo", "bar")
|
||||
allow(named_args).to receive(:resolve_keg).with("foo").and_return foo_keg
|
||||
allow(named_args).to receive(:resolve_keg).with("bar").and_return bar_keg
|
||||
|
||||
expect(named_args.to_kegs).to eq [foo_keg, bar_keg]
|
||||
end
|
||||
end
|
||||
|
||||
describe "#to_kegs_to_casks" do
|
||||
it "returns kegs, as well as casks" do
|
||||
named_args = described_class.new("foo", "baz")
|
||||
allow(named_args).to receive(:resolve_keg).and_call_original
|
||||
allow(named_args).to receive(:resolve_keg).with("foo").and_return foo_keg
|
||||
stub_cask_loader baz
|
||||
|
||||
kegs, casks = named_args.to_kegs_to_casks
|
||||
|
||||
expect(kegs).to eq [foo_keg]
|
||||
expect(casks).to eq [baz]
|
||||
end
|
||||
end
|
||||
end
|
||||
@ -36,6 +36,7 @@ $LOAD_PATH.push(File.expand_path("#{ENV["HOMEBREW_LIBRARY"]}/Homebrew/test/suppo
|
||||
require_relative "../global"
|
||||
|
||||
require "test/support/no_seed_progress_formatter"
|
||||
require "test/support/helper/cask"
|
||||
require "test/support/helper/fixtures"
|
||||
require "test/support/helper/formula"
|
||||
require "test/support/helper/mktmpdir"
|
||||
@ -86,6 +87,7 @@ RSpec.configure do |config|
|
||||
|
||||
config.include(RuboCop::RSpec::ExpectOffense)
|
||||
|
||||
config.include(Test::Helper::Cask)
|
||||
config.include(Test::Helper::Fixtures)
|
||||
config.include(Test::Helper::Formula)
|
||||
config.include(Test::Helper::MkTmpDir)
|
||||
|
||||
14
Library/Homebrew/test/support/helper/cask.rb
Normal file
14
Library/Homebrew/test/support/helper/cask.rb
Normal file
@ -0,0 +1,14 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "cask/cask_loader"
|
||||
|
||||
module Test
|
||||
module Helper
|
||||
module Cask
|
||||
def stub_cask_loader(cask, ref = cask.token)
|
||||
loader = ::Cask::CaskLoader::FromInstanceLoader.new cask
|
||||
allow(::Cask::CaskLoader).to receive(:for).with(ref).and_return(loader)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
x
Reference in New Issue
Block a user