aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/formula_pin_spec.rb
diff options
context:
space:
mode:
authorMarkus Reiter2017-02-17 19:05:17 +0100
committerMarkus Reiter2017-02-20 22:30:59 +0100
commit9904eae48a5e4129905b48e5fe61afbb82726a39 (patch)
tree28d12772d2fb9add775211c24945cdb4e408476f /Library/Homebrew/test/formula_pin_spec.rb
parent25959927fabb2fb6132c028d9537f4b589f47a4b (diff)
downloadbrew-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.rb41
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