Skip to content
Snippets Groups Projects
Commit cfed0773 authored by Markus Reiter's avatar Markus Reiter
Browse files

Convert Homebrew::Hooks::Bottles test to spec.

parent f8e5716b
No related branches found
No related tags found
No related merge requests found
require "formula_installer"
require "hooks/bottles"
RSpec::Matchers.alias_matcher :pour_bottle, :be_pour_bottle
describe Homebrew::Hooks::Bottles do
subject { FormulaInstaller.new formula }
let(:formula) do
double(
bottle: nil,
local_bottle_path: nil,
bottle_disabled?: false,
some_random_method: true,
)
end
after(:each) do
described_class.reset_hooks
end
describe "#setup_formula_has_bottle" do
context "given a block which evaluates to true" do
before(:each) do
described_class.setup_formula_has_bottle(&:some_random_method)
end
it { is_expected.to pour_bottle }
end
context "given a block which evaluates to false" do
before(:each) do
described_class.setup_formula_has_bottle { |f| !f.some_random_method }
end
it { is_expected.not_to pour_bottle }
end
end
describe "#setup_pour_formula_bottle" do
before(:each) do
described_class.setup_formula_has_bottle { true }
described_class.setup_pour_formula_bottle(&:some_random_method)
end
it "does not raise an error" do
expect { subject.pour }.not_to raise_error
end
end
end
require "testing_env"
require "formula_installer"
require "hooks/bottles"
class BottleHookTests < Homebrew::TestCase
class FormulaDouble
def bottle; end
def local_bottle_path; end
def bottle_disabled?
false
end
def some_random_method
true
end
end
def setup
super
@fi = FormulaInstaller.new FormulaDouble.new
end
def test_has_bottle
Homebrew::Hooks::Bottles.setup_formula_has_bottle(&:some_random_method)
assert_predicate @fi, :pour_bottle?
end
def test_has_no_bottle
Homebrew::Hooks::Bottles.setup_formula_has_bottle do |f|
!f.some_random_method
end
refute_predicate @fi, :pour_bottle?
end
def test_pour_formula_bottle
Homebrew::Hooks::Bottles.setup_formula_has_bottle do |_f|
true
end
Homebrew::Hooks::Bottles.setup_pour_formula_bottle(&:some_random_method)
@fi.pour
end
def teardown
Homebrew::Hooks::Bottles.reset_hooks
super
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment