|
4 | 4 |
|
5 | 5 | RSpec.describe Homebrew::Unlink do |
6 | 6 | describe ".unlink_link_overwrite_formulae" do |
7 | | - let(:formula) { instance_double(Formula) } |
8 | | - let(:linked_keg) { instance_double(Keg, directory?: true) } |
9 | | - let(:linked_formula) { instance_double(Formula, keg_only?: true, linked?: true, any_installed_keg: linked_keg) } |
| 7 | + let(:formula) { instance_double(Formula, keg_only?: false) } |
| 8 | + let(:linked_keg_only_keg) { instance_double(Keg, directory?: true) } |
| 9 | + let(:linked_keg_only_formula) do |
| 10 | + instance_double(Formula, linked?: true, keg_only?: true, any_installed_keg: linked_keg_only_keg) |
| 11 | + end |
10 | 12 | let(:linked_non_keg_only_keg) { instance_double(Keg, directory?: true) } |
11 | 13 | let(:linked_non_keg_only_formula) do |
12 | | - instance_double(Formula, keg_only?: false, linked?: true, any_installed_keg: linked_non_keg_only_keg) |
| 14 | + instance_double(Formula, linked?: true, keg_only?: false, |
| 15 | + any_installed_keg: linked_non_keg_only_keg) |
| 16 | + end |
| 17 | + let(:unlinked_formula) do |
| 18 | + instance_double(Formula, linked?: false, keg_only?: true, any_installed_keg: nil) |
13 | 19 | end |
14 | | - let(:unlinked_formula) { instance_double(Formula, keg_only?: true, linked?: false, any_installed_keg: nil) } |
15 | 20 |
|
16 | | - it "unlinks linked sibling formulae returned by link_overwrite_formulae" do |
| 21 | + it "only unlinks linked keg-only sibling formulae for non-keg-only formulae" do |
17 | 22 | allow(formula).to receive(:link_overwrite_formulae) |
18 | | - .and_return([linked_formula, linked_non_keg_only_formula, unlinked_formula]) |
19 | | - expect(described_class).to receive(:unlink).with(linked_keg, verbose: true).once |
| 23 | + .and_return([linked_keg_only_formula, linked_non_keg_only_formula, unlinked_formula]) |
| 24 | + expect(described_class).to receive(:unlink).with(linked_keg_only_keg, verbose: true).once |
| 25 | + expect(described_class).not_to receive(:unlink).with(linked_non_keg_only_keg, verbose: true) |
| 26 | + |
| 27 | + described_class.unlink_link_overwrite_formulae(formula, verbose: true) |
| 28 | + end |
| 29 | + |
| 30 | + it "unlinks all linked sibling formulae for keg-only formulae" do |
| 31 | + allow(formula).to receive_messages(keg_only?: true, |
| 32 | + link_overwrite_formulae: [linked_keg_only_formula, |
| 33 | + linked_non_keg_only_formula, |
| 34 | + unlinked_formula]) |
| 35 | + expect(described_class).to receive(:unlink).with(linked_keg_only_keg, verbose: true).once |
20 | 36 | expect(described_class).to receive(:unlink).with(linked_non_keg_only_keg, verbose: true).once |
21 | 37 |
|
22 | 38 | described_class.unlink_link_overwrite_formulae(formula, verbose: true) |
|
0 commit comments