From ada6a1b09e04ed3ab6758adfb231bc31b332442c Mon Sep 17 00:00:00 2001
From: Markus Reiter <me@reitermark.us>
Date: Thu, 23 Feb 2017 06:03:33 +0100
Subject: [PATCH] Convert `brew link` test to spec.

---
 Library/Homebrew/test/cmd/link_spec.rb | 56 ++++++++++++++++++++++++++
 Library/Homebrew/test/link_test.rb     | 23 -----------
 2 files changed, 56 insertions(+), 23 deletions(-)
 create mode 100644 Library/Homebrew/test/cmd/link_spec.rb
 delete mode 100644 Library/Homebrew/test/link_test.rb

diff --git a/Library/Homebrew/test/cmd/link_spec.rb b/Library/Homebrew/test/cmd/link_spec.rb
new file mode 100644
index 0000000000..7b85c96dca
--- /dev/null
+++ b/Library/Homebrew/test/cmd/link_spec.rb
@@ -0,0 +1,56 @@
+describe "brew link", :integration_test do
+  it "fails when no argument is given" do
+    expect { brew "link" }
+      .to output(/This command requires a keg argument/).to_stderr
+      .and not_to_output.to_stdout
+      .and be_a_failure
+  end
+
+  it "does not fail if the given Formula is already linked" do
+    setup_test_formula "testball1"
+
+    shutup do
+      expect { brew "install", "testball1" }.to be_a_success
+      expect { brew "link", "testball1" }.to be_a_success
+    end
+  end
+
+  it "links a given Formula" do
+    setup_test_formula "testball1"
+
+    shutup do
+      expect { brew "install", "testball1" }.to be_a_success
+      expect { brew "unlink", "testball1" }.to be_a_success
+    end
+
+    expect { brew "link", "--dry-run", "testball1" }
+      .to output(/Would link/).to_stdout
+      .and not_to_output.to_stderr
+      .and be_a_success
+
+    expect { brew "link", "--dry-run", "--overwrite", "testball1" }
+      .to output(/Would remove/).to_stdout
+      .and not_to_output.to_stderr
+      .and be_a_success
+
+    expect { brew "link", "testball1" }
+      .to output(/Linking/).to_stdout
+      .and not_to_output.to_stderr
+      .and be_a_success
+  end
+
+  it "refuses to link keg-only Formulae" do
+    setup_test_formula "testball1", <<-EOS.undent
+      keg_only "just because"
+    EOS
+
+    shutup do
+      expect { brew "install", "testball1" }.to be_a_success
+    end
+
+    expect { brew "link", "testball1" }
+      .to output(/testball1 is keg-only/).to_stderr
+      .and output(/Note that doing so can interfere with building software\./).to_stdout
+      .and be_a_success
+  end
+end
diff --git a/Library/Homebrew/test/link_test.rb b/Library/Homebrew/test/link_test.rb
deleted file mode 100644
index 062caa0c07..0000000000
--- a/Library/Homebrew/test/link_test.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-require "testing_env"
-
-class IntegrationCommandTestLink < IntegrationCommandTestCase
-  def test_link
-    assert_match "This command requires a keg argument", cmd_fail("link")
-
-    setup_test_formula "testball1"
-    cmd("install", "testball1")
-    cmd("link", "testball1")
-
-    cmd("unlink", "testball1")
-    assert_match "Would link", cmd("link", "--dry-run", "testball1")
-    assert_match "Would remove",
-      cmd("link", "--dry-run", "--overwrite", "testball1")
-    assert_match "Linking", cmd("link", "testball1")
-
-    setup_test_formula "testball2", <<-EOS.undent
-      keg_only "just because"
-    EOS
-    cmd("install", "testball2")
-    assert_match "testball2 is keg-only", cmd("link", "testball2")
-  end
-end
-- 
GitLab