diff --git a/Library/Homebrew/software_spec.rb b/Library/Homebrew/software_spec.rb index cd3b0e990d..fb2d8646ba 100644 --- a/Library/Homebrew/software_spec.rb +++ b/Library/Homebrew/software_spec.rb @@ -171,7 +171,7 @@ class SoftwareSpec end def uses_from_macos(deps, **_args) - deps.is_a?(Hash) && deps = Hash[*deps.shift] + deps = Hash[*deps.shift] if deps.is_a?(Hash) depends_on(deps) end diff --git a/Library/Homebrew/test/os/linux/software_spec_spec.rb b/Library/Homebrew/test/os/linux/software_spec_spec.rb deleted file mode 100644 index f7bd89763d..0000000000 --- a/Library/Homebrew/test/os/linux/software_spec_spec.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -require "software_spec" - -describe SoftwareSpec do - subject(:spec) { described_class.new } - - describe "#uses_from_macos" do - before do - allow(OS).to receive(:linux?).and_return(true) - end - - it "allows specifying dependencies" do - spec.uses_from_macos("foo") - - expect(spec.deps.first.name).to eq("foo") - end - - it "works with tags" do - spec.uses_from_macos("foo" => :head, :after => :mojave) - - expect(spec.deps.first.name).to eq("foo") - expect(spec.deps.first.tags).to include(:head) - end - - it "ignores OS version specifications" do - spec.uses_from_macos("foo", after: :mojave) - spec.uses_from_macos("bar" => :head, :after => :mojave) - - expect(spec.deps.first.name).to eq("foo") - expect(spec.deps.last.name).to eq("bar") - expect(spec.deps.last.tags).to include(:head) - end - end -end diff --git a/Library/Homebrew/test/software_spec_spec.rb b/Library/Homebrew/test/software_spec_spec.rb index 43293af2fc..22d91c491e 100644 --- a/Library/Homebrew/test/software_spec_spec.rb +++ b/Library/Homebrew/test/software_spec_spec.rb @@ -132,6 +132,30 @@ describe SoftwareSpec do end end + describe "#uses_from_macos" do + it "allows specifying dependencies", :needs_linux do + spec.uses_from_macos("foo") + + expect(spec.deps.first.name).to eq("foo") + end + + it "works with tags", :needs_linux do + spec.uses_from_macos("foo" => :head, :after => :mojave) + + expect(spec.deps.first.name).to eq("foo") + expect(spec.deps.first.tags).to include(:head) + end + + it "ignores OS version specifications", :needs_linux do + spec.uses_from_macos("foo", after: :mojave) + spec.uses_from_macos("bar" => :head, :after => :mojave) + + expect(spec.deps.first.name).to eq("foo") + expect(spec.deps.last.name).to eq("bar") + expect(spec.deps.last.tags).to include(:head) + end + end + specify "explicit options override defaupt depends_on option description" do subject.option("with-foo", "blah") subject.depends_on("foo" => :optional)