summaryrefslogtreecommitdiff
path: root/spec/commands/info_spec.rb
blob: b4ff08b277b317004d767c43b6df59d238640ef0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# frozen_string_literal: true
require "spec_helper"

RSpec.describe "bundle info" do
  context "info from specific gem in gemfile" do
    before do
      install_gemfile <<-G
        source "file://#{gem_repo1}"
        gem "rails"
      G
    end

    it "prints information about the current gem" do
      bundle "info rails"
      expect(out).to include "* rails (2.3.2)
\tSummary: This is just a fake gem for testing
\tHomepage: http://example.com"
      expect(out).to match(%r{Path\: .*\/rails\-2\.3\.2})
    end

    context "given a gem that is not installed" do
      it "prints missing gem error" do
        bundle "info foo"
        expect(out).to eq "Could not find gem 'foo'."
      end
    end

    context "given a default gem shippped in ruby" do
      it "prints information about the default gem" do
        bundle "info rdoc"
        expect(out).to include("* rdoc")
        expect(out).to match(%r{gems\/rdoc\-})
      end
    end

    context "when gem does not have homepage" do
      before do
        build_repo1 do
          build_gem "rails", "2.3.2" do |s|
            s.executables = "rails"
            s.summary = "Just another test gem"
          end
        end
      end

      it "excludes the homepage field from the output" do
        expect(out).to_not include("Homepage:")
      end
    end

    context "given --path option" do
      it "prints the path to the gem" do
        bundle "info rails"
        expect(out).to match(%r{.*\/rails\-2\.3\.2})
      end
    end
  end
end