brew/Library/Homebrew/test/os/mac/version_spec.rb

67 lines
2.1 KiB
Ruby
Raw Normal View History

2020-10-10 14:16:11 +02:00
# typed: false
# frozen_string_literal: true
2017-02-21 05:54:16 +01:00
require "version"
require "os/mac/version"
describe OS::Mac::Version do
2020-10-05 14:46:43 +02:00
subject(:version) { described_class.new("10.14") }
2017-02-21 05:54:16 +01:00
specify "comparison with Symbol" do
2020-10-05 14:46:43 +02:00
expect(version).to be > :high_sierra
expect(version).to be == :mojave
expect(version).to be === :mojave # rubocop:disable Style/CaseEquality
expect(version).to be < :catalina
2017-02-21 05:54:16 +01:00
end
specify "comparison with Fixnum" do
2020-10-05 14:46:43 +02:00
expect(version).to be > 10
expect(version).to be < 11
2017-02-21 05:54:16 +01:00
end
specify "comparison with Float" do
2020-10-05 14:46:43 +02:00
expect(version).to be > 10.13
expect(version).to be < 10.15
2017-02-21 05:54:16 +01:00
end
specify "comparison with String" do
2020-10-05 14:46:43 +02:00
expect(version).to be > "10.3"
expect(version).to be == "10.14"
expect(version).to be === "10.14" # rubocop:disable Style/CaseEquality
expect(version).to be < "10.15"
2017-02-21 05:54:16 +01:00
end
specify "comparison with Version" do
2020-10-05 14:46:43 +02:00
expect(version).to be > Version.create("10.3")
expect(version).to be == Version.create("10.14")
expect(version).to be === Version.create("10.14") # rubocop:disable Style/CaseEquality
expect(version).to be < Version.create("10.15")
end
describe "#new" do
it "raises an error if the version is not a valid macOS version" do
expect {
described_class.new("1.2")
}.to raise_error(MacOSVersionError, 'unknown or unsupported macOS version: "1.2"')
end
2017-02-21 05:54:16 +01:00
end
specify "#from_symbol" do
2020-10-05 14:46:43 +02:00
expect(described_class.from_symbol(:mojave)).to eq(version)
2017-02-21 05:54:16 +01:00
expect { described_class.from_symbol(:foo) }
.to raise_error(MacOSVersionError, "unknown or unsupported macOS version: :foo")
2017-02-21 05:54:16 +01:00
end
specify "#pretty_name" do
expect(described_class.new("10.11").pretty_name).to eq("El Capitan")
expect(described_class.new("10.14").pretty_name).to eq("Mojave")
2017-02-21 05:54:16 +01:00
expect(described_class.new("10.10").pretty_name).to eq("Yosemite")
end
specify "#requires_nehalem_cpu?" do
expect(Hardware::CPU).to receive(:type).at_least(:twice).and_return(:intel)
expect(described_class.new("10.14").requires_nehalem_cpu?).to be true
expect(described_class.new("10.12").requires_nehalem_cpu?).to be false
end
2017-02-21 05:54:16 +01:00
end