formulary: install tap if needed.

This matches what `cask_loader` does and is low risk given we no longer
allow tap pinning.

Fixes #7626
This commit is contained in:
Mike McQuaid 2020-05-22 14:21:40 +01:00
parent e4719cb6f3
commit 61b48d8557
No known key found for this signature in database
GPG Key ID: 48A898132FD8EE70
2 changed files with 4 additions and 1 deletions

View File

@ -279,6 +279,8 @@ module Formulary
end end
def load_file def load_file
tap.install unless tap.installed?
super super
rescue MethodDeprecatedError => e rescue MethodDeprecatedError => e
e.issues_url = tap.issues_url || tap.to_s e.issues_url = tap.issues_url || tap.to_s

View File

@ -227,7 +227,8 @@ describe Formulary do
end end
end end
it "raises an error if the Formula is not available" do it "raises an error if the Formula is not available after tapping" do
expect_any_instance_of(Tap).to receive(:install)
expect { expect {
described_class.to_rack("a/b/#{formula_name}") described_class.to_rack("a/b/#{formula_name}")
}.to raise_error(TapFormulaUnavailableError) }.to raise_error(TapFormulaUnavailableError)