diff options
| author | Markus Reiter | 2017-02-17 19:05:17 +0100 | 
|---|---|---|
| committer | Markus Reiter | 2017-02-20 22:30:59 +0100 | 
| commit | 9904eae48a5e4129905b48e5fe61afbb82726a39 (patch) | |
| tree | 28d12772d2fb9add775211c24945cdb4e408476f /Library/Homebrew/test/formula_pin_spec.rb | |
| parent | 25959927fabb2fb6132c028d9537f4b589f47a4b (diff) | |
| download | brew-9904eae48a5e4129905b48e5fe61afbb82726a39.tar.bz2 | |
Convert FormulaPin test to spec.
Diffstat (limited to 'Library/Homebrew/test/formula_pin_spec.rb')
| -rw-r--r-- | Library/Homebrew/test/formula_pin_spec.rb | 41 | 
1 files changed, 41 insertions, 0 deletions
| diff --git a/Library/Homebrew/test/formula_pin_spec.rb b/Library/Homebrew/test/formula_pin_spec.rb new file mode 100644 index 000000000..909bfbc2b --- /dev/null +++ b/Library/Homebrew/test/formula_pin_spec.rb @@ -0,0 +1,41 @@ +require "formula_pin" + +describe FormulaPin do +  subject { described_class.new(formula) } +  let(:name) { "double" } +  let(:formula) { double(Formula, name: name, rack: HOMEBREW_CELLAR/name) } + +  before(:each) do +    formula.rack.mkpath + +    allow(formula).to receive(:installed_prefixes) do +      formula.rack.directory? ? formula.rack.subdirs : [] +    end + +    allow(formula).to receive(:installed_kegs) do +      formula.installed_prefixes.map { |prefix| Keg.new(prefix) } +    end +  end + +  it "is not pinnable by default" do +    expect(subject).not_to be_pinnable +  end + +  it "is pinnable if the Keg exists" do +    (formula.rack/"0.1").mkpath +    expect(subject).to be_pinnable +  end + +  specify "#pin and #unpin" do +    (formula.rack/"0.1").mkpath + +    subject.pin +    expect(subject).to be_pinned +    expect(HOMEBREW_PINNED_KEGS/name).to be_a_directory +    expect(HOMEBREW_PINNED_KEGS.children.count).to eq(1) + +    subject.unpin +    expect(subject).not_to be_pinned +    expect(HOMEBREW_PINNED_KEGS).not_to be_a_directory +  end +end | 
