Merge pull request #9021 from EricFromCanada/requirements-display
Update display of requirements
This commit is contained in:
commit
d6d38e35d4
@ -21,7 +21,7 @@ class OsxfuseRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def message
|
def message
|
||||||
msg = "libfuse is required to install this formula.\n"
|
msg = "libfuse is required for this software.\n"
|
||||||
if libfuse_formula_exists?
|
if libfuse_formula_exists?
|
||||||
<<~EOS
|
<<~EOS
|
||||||
#{msg}Run `brew install libfuse` to install it.
|
#{msg}Run `brew install libfuse` to install it.
|
||||||
|
|||||||
@ -21,4 +21,8 @@ class OsxfuseRequirement < Requirement
|
|||||||
ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/osxfuse"
|
ENV.append_path "HOMEBREW_INCLUDE_PATHS", "/usr/local/include/osxfuse"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def message
|
||||||
|
"FUSE for macOS is required for this software. #{super}"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -17,6 +17,6 @@ class X11Requirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def message
|
def message
|
||||||
"XQuartz #{min_version} (or newer) is required to install this formula. #{super}"
|
"XQuartz #{min_version} (or newer) is required for this software. #{super}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1772,7 +1772,7 @@ class Formula
|
|||||||
"name" => req.name,
|
"name" => req.name,
|
||||||
"cask" => req.cask,
|
"cask" => req.cask,
|
||||||
"download" => req.download,
|
"download" => req.download,
|
||||||
"version" => req.try(:version),
|
"version" => req.try(:version) || req.try(:arch),
|
||||||
"contexts" => req.tags,
|
"contexts" => req.tags,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -48,7 +48,7 @@ class Requirement
|
|||||||
if download
|
if download
|
||||||
s += <<~EOS
|
s += <<~EOS
|
||||||
You can download from:
|
You can download from:
|
||||||
#{download}
|
#{Formatter.url(download)}
|
||||||
EOS
|
EOS
|
||||||
end
|
end
|
||||||
s
|
s
|
||||||
@ -122,11 +122,11 @@ class Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
"#<#{self.class.name}: #{name.inspect} #{tags.inspect}>"
|
"#<#{self.class.name}: #{tags.inspect}>"
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_s
|
def display_s
|
||||||
name
|
name.capitalize
|
||||||
end
|
end
|
||||||
|
|
||||||
def mktemp(&block)
|
def mktemp(&block)
|
||||||
|
|||||||
@ -9,6 +9,8 @@ require "requirement"
|
|||||||
class ArchRequirement < Requirement
|
class ArchRequirement < Requirement
|
||||||
fatal true
|
fatal true
|
||||||
|
|
||||||
|
attr_reader :arch
|
||||||
|
|
||||||
def initialize(tags)
|
def initialize(tags)
|
||||||
@arch = tags.shift
|
@arch = tags.shift
|
||||||
super(tags)
|
super(tags)
|
||||||
@ -16,13 +18,17 @@ class ArchRequirement < Requirement
|
|||||||
|
|
||||||
satisfy(build_env: false) do
|
satisfy(build_env: false) do
|
||||||
case @arch
|
case @arch
|
||||||
when :x86_64 then Hardware::CPU.is_64_bit?
|
when :x86_64 then Hardware::CPU.intel? && Hardware::CPU.is_64_bit?
|
||||||
when :intel, :ppc then Hardware::CPU.type == @arch
|
when :arm, :intel, :ppc then Hardware::CPU.type == @arch
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def message
|
def message
|
||||||
"This formula requires an #{@arch} architecture."
|
"The #{@arch} architecture is required for this software."
|
||||||
|
end
|
||||||
|
|
||||||
|
def inspect
|
||||||
|
"#<#{self.class.name}: arch=#{@arch.to_s.inspect} #{tags.inspect}>"
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_s
|
def display_s
|
||||||
|
|||||||
@ -39,13 +39,13 @@ class JavaRequirement < Requirement
|
|||||||
|
|
||||||
def message
|
def message
|
||||||
version_string = " #{@version}" if @version
|
version_string = " #{@version}" if @version
|
||||||
s = "Java#{version_string} is required to install this formula.\n"
|
s = "Java#{version_string} is required for this software.\n"
|
||||||
s += suggestion
|
s += suggestion
|
||||||
s
|
s
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
"#<#{self.class.name}: #{tags.inspect} version=#{@version.inspect}>"
|
"#<#{self.class.name}: version=#{@version.inspect} #{tags.inspect}>"
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_s
|
def display_s
|
||||||
@ -55,9 +55,9 @@ class JavaRequirement < Requirement
|
|||||||
else
|
else
|
||||||
">="
|
">="
|
||||||
end
|
end
|
||||||
"#{name} #{op} #{version_without_plus}"
|
"#{name.capitalize} #{op} #{version_without_plus}"
|
||||||
else
|
else
|
||||||
name
|
name.capitalize
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,6 @@ class LinuxRequirement < Requirement
|
|||||||
satisfy(build_env: false) { OS.linux? }
|
satisfy(build_env: false) { OS.linux? }
|
||||||
|
|
||||||
def message
|
def message
|
||||||
"Linux is required."
|
"Linux is required for this software."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -41,11 +41,11 @@ class MacOSRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def message(type: :formula)
|
def message(type: :formula)
|
||||||
return "macOS is required." unless version_specified?
|
return "macOS is required for this software." unless version_specified?
|
||||||
|
|
||||||
case @comparator
|
case @comparator
|
||||||
when ">="
|
when ">="
|
||||||
"macOS #{@version.pretty_name} or newer is required."
|
"macOS #{@version.pretty_name} or newer is required for this software."
|
||||||
when "<="
|
when "<="
|
||||||
case type
|
case type
|
||||||
when :formula
|
when :formula
|
||||||
@ -59,19 +59,19 @@ class MacOSRequirement < Requirement
|
|||||||
else
|
else
|
||||||
if @version.respond_to?(:to_ary)
|
if @version.respond_to?(:to_ary)
|
||||||
*versions, last = @version.map(&:pretty_name)
|
*versions, last = @version.map(&:pretty_name)
|
||||||
return "macOS #{versions.join(", ")} or #{last} is required."
|
return "macOS #{versions.join(", ")} or #{last} is required for this software."
|
||||||
end
|
end
|
||||||
|
|
||||||
"macOS #{@version.pretty_name} is required."
|
"macOS #{@version.pretty_name} is required for this software."
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
"#<#{self.class.name}: #{tags.inspect} version#{@comparator}#{@version}>"
|
"#<#{self.class.name}: version#{@comparator}#{@version.to_s.inspect} #{tags.inspect}>"
|
||||||
end
|
end
|
||||||
|
|
||||||
def display_s
|
def display_s
|
||||||
return "macOS is required" unless version_specified?
|
return "macOS" unless version_specified?
|
||||||
|
|
||||||
"macOS #{@comparator} #{@version}"
|
"macOS #{@comparator} #{@version}"
|
||||||
end
|
end
|
||||||
|
|||||||
@ -7,8 +7,14 @@ require "requirement"
|
|||||||
#
|
#
|
||||||
# @api private
|
# @api private
|
||||||
class OsxfuseRequirement < Requirement
|
class OsxfuseRequirement < Requirement
|
||||||
|
extend T::Sig
|
||||||
cask "osxfuse"
|
cask "osxfuse"
|
||||||
fatal true
|
fatal true
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def display_s
|
||||||
|
"FUSE"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
require "extend/os/requirements/osxfuse_requirement"
|
require "extend/os/requirements/osxfuse_requirement"
|
||||||
|
|||||||
@ -39,7 +39,7 @@ class X11Requirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def message
|
def message
|
||||||
"X11 is required to install this formula, either Xorg #{min_version} or " \
|
"X11 is required for this software, either Xorg #{min_version} or " \
|
||||||
"xdpyinfo #{min_xdpyinfo_version}, or newer. #{super}"
|
"xdpyinfo #{min_xdpyinfo_version}, or newer. #{super}"
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -48,10 +48,6 @@ class X11Requirement < Requirement
|
|||||||
|
|
||||||
0
|
0
|
||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
|
||||||
"#<#{self.class.name}: #{tags.inspect}>"
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
require "extend/os/requirements/x11_requirement"
|
require "extend/os/requirements/x11_requirement"
|
||||||
|
|||||||
@ -46,7 +46,13 @@ class XcodeRequirement < Requirement
|
|||||||
end
|
end
|
||||||
|
|
||||||
def inspect
|
def inspect
|
||||||
"#<#{self.class.name}: #{tags.inspect} version=#{@version.inspect}>"
|
"#<#{self.class.name}: version>=#{@version.inspect} #{tags.inspect}>"
|
||||||
|
end
|
||||||
|
|
||||||
|
def display_s
|
||||||
|
return name.capitalize unless @version
|
||||||
|
|
||||||
|
"#{name.capitalize} >= #{@version}"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -1,131 +0,0 @@
|
|||||||
# typed: false
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
require "cli/args"
|
|
||||||
require "requirements/java_requirement"
|
|
||||||
|
|
||||||
describe JavaRequirement do
|
|
||||||
subject { described_class.new([]) }
|
|
||||||
|
|
||||||
before do
|
|
||||||
ENV["JAVA_HOME"] = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#message" do
|
|
||||||
its(:message) { is_expected.to match(/Java is required to install this formula./) }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#inspect" do
|
|
||||||
subject { described_class.new(%w[1.7+]) }
|
|
||||||
|
|
||||||
its(:inspect) { is_expected.to eq('#<JavaRequirement: [] version="1.7+">') }
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#display_s" do
|
|
||||||
context "without specific version" do
|
|
||||||
its(:display_s) { is_expected.to eq("java") }
|
|
||||||
end
|
|
||||||
|
|
||||||
context "with version 1.8" do
|
|
||||||
subject { described_class.new(%w[1.8]) }
|
|
||||||
|
|
||||||
its(:display_s) { is_expected.to eq("java = 1.8") }
|
|
||||||
end
|
|
||||||
|
|
||||||
context "with version 1.8+" do
|
|
||||||
subject { described_class.new(%w[1.8+]) }
|
|
||||||
|
|
||||||
its(:display_s) { is_expected.to eq("java >= 1.8") }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#satisfied?" do
|
|
||||||
subject { described_class.new(%w[1.8]) }
|
|
||||||
|
|
||||||
it "returns false if no `java` executable can be found" do
|
|
||||||
allow(File).to receive(:executable?).and_return(false)
|
|
||||||
expect(subject).not_to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns true if #preferred_java returns a path" do
|
|
||||||
allow(subject).to receive(:preferred_java).and_return(Pathname.new("/usr/bin/java"))
|
|
||||||
expect(subject).to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
context "when #possible_javas contains paths" do
|
|
||||||
let(:path) { mktmpdir }
|
|
||||||
let(:java) { path/"java" }
|
|
||||||
|
|
||||||
def setup_java_with_version(version)
|
|
||||||
IO.write java, <<~SH
|
|
||||||
#!/bin/sh
|
|
||||||
echo 'java version "#{version}"' 1>&2
|
|
||||||
SH
|
|
||||||
FileUtils.chmod "+x", java
|
|
||||||
end
|
|
||||||
|
|
||||||
before do
|
|
||||||
allow(subject).to receive(:possible_javas).and_return([java])
|
|
||||||
end
|
|
||||||
|
|
||||||
context "and 1.7 is required" do
|
|
||||||
subject { described_class.new(%w[1.7]) }
|
|
||||||
|
|
||||||
it "returns false if all are lower" do
|
|
||||||
setup_java_with_version "1.6.0_5"
|
|
||||||
expect(subject).not_to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns true if one is equal" do
|
|
||||||
setup_java_with_version "1.7.0_5"
|
|
||||||
expect(subject).to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns false if all are higher" do
|
|
||||||
setup_java_with_version "1.8.0_5"
|
|
||||||
expect(subject).not_to be_satisfied
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
context "and 1.7+ is required" do
|
|
||||||
subject { described_class.new(%w[1.7+]) }
|
|
||||||
|
|
||||||
it "returns false if all are lower" do
|
|
||||||
setup_java_with_version "1.6.0_5"
|
|
||||||
expect(subject).not_to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns true if one is equal" do
|
|
||||||
setup_java_with_version "1.7.0_5"
|
|
||||||
expect(subject).to be_satisfied
|
|
||||||
end
|
|
||||||
|
|
||||||
it "returns true if one is higher" do
|
|
||||||
setup_java_with_version "1.8.0_5"
|
|
||||||
expect(subject).to be_satisfied
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe "#suggestion" do
|
|
||||||
context "without specific version" do
|
|
||||||
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
|
||||||
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
|
||||||
end
|
|
||||||
|
|
||||||
context "with version 1.8" do
|
|
||||||
subject { described_class.new(%w[1.8]) }
|
|
||||||
|
|
||||||
its(:suggestion) { is_expected.to match(%r{brew cask install homebrew/cask-versions/adoptopenjdk8}) }
|
|
||||||
its(:cask) { is_expected.to eq("homebrew/cask-versions/adoptopenjdk8") }
|
|
||||||
end
|
|
||||||
|
|
||||||
context "with version 1.8+" do
|
|
||||||
subject { described_class.new(%w[1.8+]) }
|
|
||||||
|
|
||||||
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
|
||||||
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@ -1,33 +1,158 @@
|
|||||||
# typed: false
|
# typed: false
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require "cli/args"
|
||||||
require "requirements/java_requirement"
|
require "requirements/java_requirement"
|
||||||
|
|
||||||
describe JavaRequirement do
|
describe JavaRequirement do
|
||||||
describe "initialize" do
|
subject { described_class.new([]) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
ENV["JAVA_HOME"] = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#initialize" do
|
||||||
it "parses '1.8' tag correctly" do
|
it "parses '1.8' tag correctly" do
|
||||||
req = described_class.new(["1.8"])
|
req = described_class.new(["1.8"])
|
||||||
expect(req.display_s).to eq("java = 1.8")
|
expect(req.display_s).to eq("Java = 1.8")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "parses '9' tag correctly" do
|
it "parses '9' tag correctly" do
|
||||||
req = described_class.new(["9"])
|
req = described_class.new(["9"])
|
||||||
expect(req.display_s).to eq("java = 9")
|
expect(req.display_s).to eq("Java = 9")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "parses '9+' tag correctly" do
|
it "parses '9+' tag correctly" do
|
||||||
req = described_class.new(["9+"])
|
req = described_class.new(["9+"])
|
||||||
expect(req.display_s).to eq("java >= 9")
|
expect(req.display_s).to eq("Java >= 9")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "parses '11' tag correctly" do
|
it "parses '11' tag correctly" do
|
||||||
req = described_class.new(["11"])
|
req = described_class.new(["11"])
|
||||||
expect(req.display_s).to eq("java = 11")
|
expect(req.display_s).to eq("Java = 11")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "parses bogus tag correctly" do
|
it "parses bogus tag correctly" do
|
||||||
req = described_class.new(["bogus1.8"])
|
req = described_class.new(["bogus1.8"])
|
||||||
expect(req.display_s).to eq("java")
|
expect(req.display_s).to eq("Java")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#message" do
|
||||||
|
its(:message) { is_expected.to match(/Java is required for this software./) }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#inspect" do
|
||||||
|
subject { described_class.new(%w[1.7+]) }
|
||||||
|
|
||||||
|
its(:inspect) { is_expected.to eq('#<JavaRequirement: version="1.7+" []>') }
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#display_s" do
|
||||||
|
context "without specific version" do
|
||||||
|
its(:display_s) { is_expected.to eq("Java") }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with version 1.8" do
|
||||||
|
subject { described_class.new(%w[1.8]) }
|
||||||
|
|
||||||
|
its(:display_s) { is_expected.to eq("Java = 1.8") }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with version 1.8+" do
|
||||||
|
subject { described_class.new(%w[1.8+]) }
|
||||||
|
|
||||||
|
its(:display_s) { is_expected.to eq("Java >= 1.8") }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#satisfied?" do
|
||||||
|
subject(:requirement) { described_class.new(%w[1.8]) }
|
||||||
|
|
||||||
|
it "returns false if no `java` executable can be found" do
|
||||||
|
allow(File).to receive(:executable?).and_return(false)
|
||||||
|
expect(requirement).not_to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true if #preferred_java returns a path" do
|
||||||
|
allow(requirement).to receive(:preferred_java).and_return(Pathname.new("/usr/bin/java"))
|
||||||
|
expect(requirement).to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
context "when #possible_javas contains paths" do
|
||||||
|
let(:path) { mktmpdir }
|
||||||
|
let(:java) { path/"java" }
|
||||||
|
|
||||||
|
def setup_java_with_version(version)
|
||||||
|
IO.write java, <<~SH
|
||||||
|
#!/bin/sh
|
||||||
|
echo 'java version "#{version}"' 1>&2
|
||||||
|
SH
|
||||||
|
FileUtils.chmod "+x", java
|
||||||
|
end
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(requirement).to receive(:possible_javas).and_return([java])
|
||||||
|
end
|
||||||
|
|
||||||
|
context "and 1.7 is required" do
|
||||||
|
subject(:requirement) { described_class.new(%w[1.7]) }
|
||||||
|
|
||||||
|
it "returns false if all are lower" do
|
||||||
|
setup_java_with_version "1.6.0_5"
|
||||||
|
expect(requirement).not_to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true if one is equal" do
|
||||||
|
setup_java_with_version "1.7.0_5"
|
||||||
|
expect(requirement).to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns false if all are higher" do
|
||||||
|
setup_java_with_version "1.8.0_5"
|
||||||
|
expect(requirement).not_to be_satisfied
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "and 1.7+ is required" do
|
||||||
|
subject(:requirement) { described_class.new(%w[1.7+]) }
|
||||||
|
|
||||||
|
it "returns false if all are lower" do
|
||||||
|
setup_java_with_version "1.6.0_5"
|
||||||
|
expect(requirement).not_to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true if one is equal" do
|
||||||
|
setup_java_with_version "1.7.0_5"
|
||||||
|
expect(requirement).to be_satisfied
|
||||||
|
end
|
||||||
|
|
||||||
|
it "returns true if one is higher" do
|
||||||
|
setup_java_with_version "1.8.0_5"
|
||||||
|
expect(requirement).to be_satisfied
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#suggestion" do
|
||||||
|
context "without specific version" do
|
||||||
|
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
||||||
|
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with version 1.8" do
|
||||||
|
subject { described_class.new(%w[1.8]) }
|
||||||
|
|
||||||
|
its(:suggestion) { is_expected.to match(%r{brew cask install homebrew/cask-versions/adoptopenjdk8}) }
|
||||||
|
its(:cask) { is_expected.to eq("homebrew/cask-versions/adoptopenjdk8") }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with version 1.8+" do
|
||||||
|
subject { described_class.new(%w[1.8+]) }
|
||||||
|
|
||||||
|
its(:suggestion) { is_expected.to match(/brew cask install adoptopenjdk/) }
|
||||||
|
its(:cask) { is_expected.to eq("adoptopenjdk") }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -44,7 +44,7 @@ describe OsxfuseRequirement do
|
|||||||
|
|
||||||
describe "#message" do
|
describe "#message" do
|
||||||
it "prompts for installation of 'libfuse' on Linux", :needs_linux do
|
it "prompts for installation of 'libfuse' on Linux", :needs_linux do
|
||||||
expect(requirement.message).to match("libfuse is required to install this formula")
|
expect(requirement.message).to match("libfuse is required for this software")
|
||||||
end
|
end
|
||||||
|
|
||||||
it "prompts for installation of 'osxFuse' on macOS", :needs_macos do
|
it "prompts for installation of 'osxFuse' on macOS", :needs_macos do
|
||||||
|
|||||||
@ -5,26 +5,28 @@ require "cli/args"
|
|||||||
require "requirements/x11_requirement"
|
require "requirements/x11_requirement"
|
||||||
|
|
||||||
describe X11Requirement do
|
describe X11Requirement do
|
||||||
|
subject(:requirement) { described_class.new([]) }
|
||||||
|
|
||||||
let(:default_name) { "x11" }
|
let(:default_name) { "x11" }
|
||||||
|
|
||||||
describe "#name" do
|
describe "#name" do
|
||||||
it "defaults to x11" do
|
it "defaults to x11" do
|
||||||
expect(subject.name).to eq(default_name)
|
expect(requirement.name).to eq(default_name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#eql?" do
|
describe "#eql?" do
|
||||||
it "returns true if the requirements are equal" do
|
it "returns true if the requirements are equal" do
|
||||||
other = described_class.new
|
other = described_class.new
|
||||||
expect(subject).to eql(other)
|
expect(requirement).to eql(other)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "#modify_build_environment" do
|
describe "#modify_build_environment" do
|
||||||
it "calls ENV#x11" do
|
it "calls ENV#x11" do
|
||||||
allow(subject).to receive(:satisfied?).and_return(true)
|
allow(requirement).to receive(:satisfied?).and_return(true)
|
||||||
expect(ENV).to receive(:x11)
|
expect(ENV).to receive(:x11)
|
||||||
subject.modify_build_environment
|
requirement.modify_build_environment
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -32,12 +34,12 @@ describe X11Requirement do
|
|||||||
it "returns true if X11 is installed" do
|
it "returns true if X11 is installed" do
|
||||||
expect(MacOS::XQuartz).to receive(:version).and_return("2.7.5")
|
expect(MacOS::XQuartz).to receive(:version).and_return("2.7.5")
|
||||||
expect(MacOS::XQuartz).to receive(:installed?).and_return(true)
|
expect(MacOS::XQuartz).to receive(:installed?).and_return(true)
|
||||||
expect(subject).to be_satisfied
|
expect(requirement).to be_satisfied
|
||||||
end
|
end
|
||||||
|
|
||||||
it "returns false if X11 is not installed" do
|
it "returns false if X11 is not installed" do
|
||||||
expect(MacOS::XQuartz).to receive(:installed?).and_return(false)
|
expect(MacOS::XQuartz).to receive(:installed?).and_return(false)
|
||||||
expect(subject).not_to be_satisfied
|
expect(requirement).not_to be_satisfied
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user