aboutsummaryrefslogtreecommitdiffstats
path: root/Library
diff options
context:
space:
mode:
authormansimarkaur2017-07-28 03:45:10 +0530
committermansimarkaur2017-08-27 01:23:32 +0530
commit660617a35b81ccb223682f2267cd641d7baf31c6 (patch)
tree9f430d045fdbee624aa7e8f03637d99894c89701 /Library
parent657b6ef7fb67231540bac9bcf4126ec27e8e1841 (diff)
downloadbrew-660617a35b81ccb223682f2267cd641d7baf31c6.tar.bz2
Added tests for Utils
Diffstat (limited to 'Library')
-rw-r--r--Library/Homebrew/test/utils/git_spec.rb116
1 files changed, 113 insertions, 3 deletions
diff --git a/Library/Homebrew/test/utils/git_spec.rb b/Library/Homebrew/test/utils/git_spec.rb
index 39b28794a..37ca331e3 100644
--- a/Library/Homebrew/test/utils/git_spec.rb
+++ b/Library/Homebrew/test/utils/git_spec.rb
@@ -21,9 +21,9 @@ describe Git do
let(:file) { "lib/blah.rb" }
let(:repo) { Pathname.new("repo") }
- # after(:all) do
- # FileUtils.rm_rf("repo")
- # end
+ after(:all) do
+ FileUtils.rm_rf("repo")
+ end
describe "#last_revision_commit_of_file" do
it "sets args as --skip=1 when before_commit is nil" do
@@ -61,6 +61,116 @@ describe Utils do
it "returns git version if already set" do
described_class.instance_variable_set(:@git, true)
expect(described_class.git_available?).to be_truthy
+ described_class.instance_variable_set(:@git, nil)
+ end
+ end
+
+ describe "::git_path" do
+ context "when git is not available" do
+ before do
+ described_class.instance_variable_set(:@git, false)
+ end
+
+ it "returns" do
+ expect(described_class.git_path).to eq(nil)
+ end
+ end
+
+ context "when git is available" do
+ before do
+ described_class.instance_variable_set(:@git, true)
+ end
+
+ it "returns path of git" do
+ expect(described_class.git_path).to eq("/Applications/Xcode.app/Contents/Developer/usr/bin/git")
+ end
+
+ it "returns git_path if already set" do
+ described_class.instance_variable_set(:@git_path, "git")
+ expect(described_class.git_path).to eq("git")
+ described_class.instance_variable_set(:@git_path, nil)
+ end
+ end
+ end
+
+ describe "::git_version" do
+ context "when git is not available" do
+ before do
+ described_class.instance_variable_set(:@git, false)
+ end
+
+ it "returns" do
+ expect(described_class.git_path).to eq(nil)
+ end
+ end
+
+ context "when git is available" do
+ before do
+ described_class.instance_variable_set(:@git, true)
+ end
+
+ it "returns version of git" do
+ expect(described_class.git_version).not_to be_nil
+ end
+
+ it "returns git_version if already set" do
+ described_class.instance_variable_set(:@git_version, "v1")
+ expect(described_class.git_version).to eq("v1")
+ described_class.instance_variable_set(:@git_version, nil)
+ end
+ end
+ end
+
+ describe "::git_remote_exists" do
+ context "when git is not available" do
+ before do
+ described_class.instance_variable_set(:@git, false)
+ end
+
+ it "returns true" do
+ expect(described_class.git_remote_exists("blah")).to be_truthy
+ end
+ end
+
+ context "when git is available" do
+ before(:all) do
+ described_class.instance_variable_set(:@git, true)
+ git = HOMEBREW_SHIMS_PATH/"scm/git"
+ @repo = Pathname.new("hey")
+ FileUtils.mkpath("hey")
+ `cd #{@repo}`
+ `#{git} init`
+ `#{git} remote add origin git@github.com:Homebrew/brew`
+ `cd ..`
+ end
+
+ after(:all) do
+ FileUtils.rm_rf(@repo)
+ end
+
+ it "returns true when git remote exists" do
+ expect(described_class.git_remote_exists("git@github.com:Homebrew/brew")).to be_truthy
+ end
+
+ it "returns false when git remote does not exist" do
+ expect(described_class.git_remote_exists("blah")).to be_falsey
+ end
+ end
+ end
+
+ describe "::clear_git_available_cache" do
+ it "removes @git_path and @git_version if defined" do
+ described_class.clear_git_available_cache
+ expect(@git_path).to be_nil
+ expect(@git_version).to be_nil
+ end
+
+ it "removes @git if defined" do
+ described_class.instance_variable_set(:@git, true)
+ described_class.clear_git_available_cache
+ expect(@git).to be_nil
+ expect(@git_path).to be_nil
+ expect(@git_version).to be_nil
end
end
end