Add #uses_from_macos specs
This commit is contained in:
parent
b3c0997c0a
commit
f2abaf6862
@ -1387,4 +1387,92 @@ describe Formula do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe "#uses_from_macos" do
|
||||||
|
context 'on Linux' do
|
||||||
|
before do
|
||||||
|
allow(OS).to receive(:mac?).and_return(false)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "acts like #depends_on" do
|
||||||
|
f = formula "foo" do
|
||||||
|
url "foo-1.0"
|
||||||
|
|
||||||
|
uses_from_macos("foo")
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f.class.stable.deps.first.name).to eq("foo")
|
||||||
|
expect(f.class.devel.deps.first.name).to eq("foo")
|
||||||
|
expect(f.class.head.deps.first.name).to eq("foo")
|
||||||
|
end
|
||||||
|
|
||||||
|
it "ignores MacOS specifications" do
|
||||||
|
f = formula "foo" do
|
||||||
|
url "foo-1.0"
|
||||||
|
|
||||||
|
uses_from_macos("foo", after: :mojave)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f.class.stable.deps.first.name).to eq("foo")
|
||||||
|
expect(f.class.devel.deps.first.name).to eq("foo")
|
||||||
|
expect(f.class.head.deps.first.name).to eq("foo")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'on MacOS' do
|
||||||
|
before do
|
||||||
|
sierra_os_version = OS::Mac::Version.from_symbol(:sierra)
|
||||||
|
|
||||||
|
allow(OS).to receive(:mac?).and_return(true)
|
||||||
|
allow(OS::Mac).to receive(:version).and_return(OS::Mac::Version.new(sierra_os_version))
|
||||||
|
end
|
||||||
|
|
||||||
|
it "doesn't adds a dependency if it doesn't meet OS version requirements" do
|
||||||
|
f = formula 'foo' do
|
||||||
|
url 'foo-1.0'
|
||||||
|
|
||||||
|
uses_from_macos('foo', after: :high_sierra)
|
||||||
|
uses_from_macos('bar', before: :el_capitan)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f.class.stable.deps).to be_empty
|
||||||
|
expect(f.class.devel.deps).to be_empty
|
||||||
|
expect(f.class.head.deps).to be_empty
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'allows specifying dependencies after certain version' do
|
||||||
|
f = formula 'foo' do
|
||||||
|
url 'foo-1.0'
|
||||||
|
|
||||||
|
uses_from_macos('foo', after: :el_capitan)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f.class.stable.deps.first.name).to eq('foo')
|
||||||
|
expect(f.class.devel.deps.first.name).to eq('foo')
|
||||||
|
expect(f.class.head.deps.first.name).to eq('foo')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'allows specifying dependencies before certain version' do
|
||||||
|
f = formula 'foo' do
|
||||||
|
url 'foo-1.0'
|
||||||
|
|
||||||
|
uses_from_macos('foo', before: :high_sierra)
|
||||||
|
end
|
||||||
|
|
||||||
|
expect(f.class.stable.deps.first.name).to eq('foo')
|
||||||
|
expect(f.class.devel.deps.first.name).to eq('foo')
|
||||||
|
expect(f.class.head.deps.first.name).to eq('foo')
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'raises an error if passing invalid OS versions' do
|
||||||
|
expect {
|
||||||
|
formula 'foo' do
|
||||||
|
url 'foo-1.0'
|
||||||
|
|
||||||
|
uses_from_macos('foo', after: 'bar', before: :mojave)
|
||||||
|
end
|
||||||
|
}.to raise_error(ArgumentError, 'unknown version "bar"')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user