From 657d3f2adebcf60ac09b9bb98b28d366923e1fea Mon Sep 17 00:00:00 2001
From: Markus Reiter <me@reitermark.us>
Date: Thu, 23 Feb 2017 06:04:02 +0100
Subject: [PATCH] Convert `brew reinstall` test to spec.

---
 Library/Homebrew/test/cmd/reinstall_spec.rb   | 47 +++++++++++++++++++
 .../Homebrew/test/reinstall_pinned_test.rb    | 15 ------
 Library/Homebrew/test/reinstall_test.rb       | 24 ----------
 3 files changed, 47 insertions(+), 39 deletions(-)
 create mode 100644 Library/Homebrew/test/cmd/reinstall_spec.rb
 delete mode 100644 Library/Homebrew/test/reinstall_pinned_test.rb
 delete mode 100644 Library/Homebrew/test/reinstall_test.rb

diff --git a/Library/Homebrew/test/cmd/reinstall_spec.rb b/Library/Homebrew/test/cmd/reinstall_spec.rb
new file mode 100644
index 0000000000..74d36bbb81
--- /dev/null
+++ b/Library/Homebrew/test/cmd/reinstall_spec.rb
@@ -0,0 +1,47 @@
+require "extend/ENV"
+
+describe "brew reinstall", :integration_test do
+  let(:bin) { (HOMEBREW_PREFIX/"bin").realpath }
+  let(:path) { "#{bin}#{File::PATH_SEPARATOR}#{ENV["PATH"]}" }
+
+  before(:each) do
+    setup_test_formula "testball"
+
+    shutup do
+      expect { brew "install", "testball", "--with-foo" }.to be_a_success
+    end
+  end
+
+  it "reinstalls a Formula" do
+    foo_dir = HOMEBREW_CELLAR/"testball/0.1/foo"
+    expect(foo_dir).to exist
+    foo_dir.rmtree
+
+    expect { brew "reinstall", "testball", "PATH" => path }
+      .to output(/Reinstalling testball --with-foo/).to_stdout
+      .and not_to_output.to_stderr
+      .and be_a_success
+
+    expect(foo_dir).to exist
+  end
+
+  it "reinstalls a Formula even when one of the options is invalid" do
+    expect { brew "reinstall", "testball", "--with-fo", "PATH" => path }
+      .to output(/Reinstalling testball --with-foo/).to_stdout
+      .and output(/testball: this formula has no \-\-with-fo option so it will be ignored!/).to_stderr
+      .and be_a_success
+  end
+
+  it "refuses to reinstall a pinned Formula, but doesn't fail" do
+    (HOMEBREW_CELLAR/"testball/0.1").mkpath
+    HOMEBREW_PINNED_KEGS.mkpath
+    FileUtils.ln_s HOMEBREW_CELLAR/"testball/0.1", HOMEBREW_PINNED_KEGS/"testball"
+
+    expect { brew "reinstall", "testball" }
+      .to output(/testball is pinned. You must unpin it to reinstall./).to_stderr
+      .and not_to_output.to_stdout
+      .and be_a_success
+
+    HOMEBREW_PINNED_KEGS.rmtree
+  end
+end
diff --git a/Library/Homebrew/test/reinstall_pinned_test.rb b/Library/Homebrew/test/reinstall_pinned_test.rb
deleted file mode 100644
index 80f5518ea9..0000000000
--- a/Library/Homebrew/test/reinstall_pinned_test.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require "testing_env"
-
-class IntegrationCommandTestReinstallPinned < IntegrationCommandTestCase
-  def test_reinstall_pinned
-    setup_test_formula "testball"
-
-    HOMEBREW_CELLAR.join("testball/0.1").mkpath
-    HOMEBREW_PINNED_KEGS.mkpath
-    FileUtils.ln_s HOMEBREW_CELLAR.join("testball/0.1"), HOMEBREW_PINNED_KEGS/"testball"
-
-    assert_match "testball is pinned. You must unpin it to reinstall.", cmd("reinstall", "testball")
-
-    HOMEBREW_PINNED_KEGS.rmtree
-  end
-end
diff --git a/Library/Homebrew/test/reinstall_test.rb b/Library/Homebrew/test/reinstall_test.rb
deleted file mode 100644
index 2906983c3d..0000000000
--- a/Library/Homebrew/test/reinstall_test.rb
+++ /dev/null
@@ -1,24 +0,0 @@
-require "testing_env"
-
-class IntegrationCommandTestReinstall < IntegrationCommandTestCase
-  def test_reinstall
-    setup_test_formula "testball"
-
-    cmd("install", "testball", "--with-foo")
-    foo_dir = HOMEBREW_CELLAR/"testball/0.1/foo"
-    assert foo_dir.exist?
-    foo_dir.rmtree
-    assert_match "Reinstalling testball --with-foo",
-      cmd("reinstall", "testball")
-    assert foo_dir.exist?
-  end
-
-  def test_reinstall_with_invalid_option
-    setup_test_formula "testball"
-
-    cmd("install", "testball", "--with-foo")
-
-    assert_match "testball: this formula has no --with-fo option so it will be ignored!",
-      cmd("reinstall", "testball", "--with-fo")
-  end
-end
-- 
GitLab