aboutsummaryrefslogtreecommitdiffstats
path: root/spec/commands/init_spec.rb
blob: 03a46a8bfa346084437f720dab3b502238306fa1 (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
# frozen_string_literal: true
require "spec_helper"

RSpec.describe "bundle init" do
  it "generates a Gemfile" do
    bundle :init
    expect(bundled_app("Gemfile")).to exist
  end

  it "does not change existing Gemfiles" do
    gemfile <<-G
      gem "rails"
    G

    expect do
      bundle :init
    end.not_to change { File.read(bundled_app("Gemfile")) }
  end

  it "should generate from an existing gemspec" do
    spec_file = tmp.join("test.gemspec")
    File.open(spec_file, "w") do |file|
      file << <<-S
        Gem::Specification.new do |s|
        s.name = 'test'
        s.add_dependency 'rack', '= 1.0.1'
        s.add_development_dependency 'rspec', '1.2'
        end
      S
    end

    bundle :init, :gemspec => spec_file

    gemfile = bundled_app("Gemfile").read
    expect(gemfile).to match(%r{source 'https://rubygems.org'})
    expect(gemfile.scan(/gem "rack", "= 1.0.1"/).size).to eq(1)
    expect(gemfile.scan(/gem "rspec", "= 1.2"/).size).to eq(1)
    expect(gemfile.scan(/group :development/).size).to eq(1)
  end
end