Add tests for CaskLoader::for.
This commit is contained in:
parent
ed00dc0b95
commit
094761dcd9
@ -498,6 +498,7 @@ module Cask
|
|||||||
$stderr.puts "#{$PROGRAM_NAME} (#{loader_class}): loading #{ref}" if debug?
|
$stderr.puts "#{$PROGRAM_NAME} (#{loader_class}): loading #{ref}" if debug?
|
||||||
|
|
||||||
if [FromAPILoader, FromTapLoader].include?(loader_class)
|
if [FromAPILoader, FromTapLoader].include?(loader_class)
|
||||||
|
ref = "#{CoreCaskTap.instance}/#{ref}" if CoreCaskTap.instance.cask_renames.key?(ref)
|
||||||
token, tap, = tap_cask_token_type(ref, warn: warn)
|
token, tap, = tap_cask_token_type(ref, warn: warn)
|
||||||
loader_class = T.cast(loader_class, T.any(T.class_of(FromAPILoader), T.class_of(FromTapLoader)))
|
loader_class = T.cast(loader_class, T.any(T.class_of(FromAPILoader), T.class_of(FromTapLoader)))
|
||||||
return loader_class.new("#{tap}/#{token}")
|
return loader_class.new("#{tap}/#{token}")
|
||||||
@ -511,7 +512,6 @@ module Cask
|
|||||||
return FromTapPathLoader.new(possible_tap_casks.first)
|
return FromTapPathLoader.new(possible_tap_casks.first)
|
||||||
when 2..Float::INFINITY
|
when 2..Float::INFINITY
|
||||||
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
loaders = possible_tap_casks.map(&FromTapPathLoader.method(:new))
|
||||||
|
|
||||||
raise TapCaskAmbiguityError.new(ref, loaders)
|
raise TapCaskAmbiguityError.new(ref, loaders)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -26,9 +26,7 @@ describe Cask::CaskLoader::FromAPILoader, :cask do
|
|||||||
|
|
||||||
context "when not using the API" do
|
context "when not using the API" do
|
||||||
before do
|
before do
|
||||||
allow(Homebrew::EnvConfig)
|
ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1"
|
||||||
.to receive(:no_install_from_api?)
|
|
||||||
.and_return(true)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns false" do
|
it "returns false" do
|
||||||
@ -38,9 +36,7 @@ describe Cask::CaskLoader::FromAPILoader, :cask do
|
|||||||
|
|
||||||
context "when using the API" do
|
context "when using the API" do
|
||||||
before do
|
before do
|
||||||
allow(Homebrew::EnvConfig)
|
ENV.delete("HOMEBREW_NO_INSTALL_FROM_API")
|
||||||
.to receive(:no_install_from_api?)
|
|
||||||
.and_return(false)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns true for valid token" do
|
it "returns true for valid token" do
|
||||||
|
|||||||
58
Library/Homebrew/test/cask/cask_loader_spec.rb
Normal file
58
Library/Homebrew/test/cask/cask_loader_spec.rb
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
describe Cask::CaskLoader, :cask do
|
||||||
|
describe "::for" do
|
||||||
|
let(:tap) { CoreCaskTap.instance }
|
||||||
|
|
||||||
|
context "when a cask is renamed" do
|
||||||
|
let(:old_token) { "version-newest" }
|
||||||
|
let(:new_token) { "version-latest" }
|
||||||
|
|
||||||
|
let(:api_casks) do
|
||||||
|
[old_token, new_token].to_h do |token|
|
||||||
|
hash = described_class.load(new_token).to_hash_with_variations
|
||||||
|
json = JSON.pretty_generate(hash)
|
||||||
|
cask_json = JSON.parse(json)
|
||||||
|
|
||||||
|
[token, cask_json.except("token")]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
let(:cask_renames) do
|
||||||
|
{ old_token => new_token }
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(Homebrew::API::Cask)
|
||||||
|
.to receive(:all_casks)
|
||||||
|
.and_return(api_casks)
|
||||||
|
|
||||||
|
allow(tap).to receive(:cask_renames)
|
||||||
|
.and_return(cask_renames)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when not using the API" do
|
||||||
|
before do
|
||||||
|
ENV["HOMEBREW_NO_INSTALL_FROM_API"] = "1"
|
||||||
|
end
|
||||||
|
|
||||||
|
it "warns" do
|
||||||
|
expect do
|
||||||
|
expect(described_class.for("version-newest")).to be_a Cask::CaskLoader::FromTapPathLoader
|
||||||
|
end.to output(/version-newest was renamed to version-latest/).to_stderr
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when using the API" do
|
||||||
|
before do
|
||||||
|
ENV.delete("HOMEBREW_NO_INSTALL_FROM_API")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "warns" do
|
||||||
|
expect do
|
||||||
|
expect(described_class.for("version-newest")).to be_a Cask::CaskLoader::FromAPILoader
|
||||||
|
end.to output(/version-newest was renamed to version-latest/).to_stderr
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user