appraisal 1.0.0.beta3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +2 -8
- data/appraisal.gemspec +0 -2
- data/bin/appraisal +6 -1
- data/features/support/dependency_helpers.rb +27 -21
- data/lib/appraisal/appraisal.rb +30 -2
- data/lib/appraisal/dependency.rb +3 -5
- data/lib/appraisal/dependency_list.rb +21 -0
- data/lib/appraisal/gemfile.rb +37 -27
- data/lib/appraisal/gemspec.rb +5 -4
- data/lib/appraisal/git_source.rb +12 -4
- data/lib/appraisal/group.rb +11 -4
- data/lib/appraisal/path_source.rb +31 -0
- data/lib/appraisal/platform.rb +12 -4
- data/lib/appraisal/task.rb +10 -7
- data/lib/appraisal/utils.rb +21 -0
- data/lib/appraisal/version.rb +1 -1
- data/spec/acceptance/appraisals_file_bundler_dsl_compatibility_spec.rb +98 -0
- data/spec/acceptance/cli/clean_spec.rb +20 -0
- data/spec/acceptance/cli/generate_spec.rb +28 -0
- data/spec/acceptance/cli/help_spec.rb +17 -0
- data/spec/acceptance/cli/install_spec.rb +70 -0
- data/spec/acceptance/cli/run_spec.rb +47 -0
- data/spec/acceptance/cli/update_spec.rb +43 -0
- data/spec/acceptance/cli/with_no_arguments_spec.rb +16 -0
- data/spec/acceptance/gemfile_dsl_compatibility_spec.rb +107 -0
- data/spec/acceptance/gemspec_spec.rb +75 -0
- data/spec/appraisal/gemspec_spec.rb +22 -0
- data/spec/appraisal/utils_spec.rb +24 -0
- data/spec/spec_helper.rb +0 -1
- data/spec/support/acceptance_test_helpers.rb +73 -35
- data/spec/support/dependency_helpers.rb +49 -0
- metadata +32 -48
- data/features/appraisals.feature +0 -105
- data/features/bundler_gemfile_compatibility.feature +0 -70
- data/features/gemspec.feature +0 -68
- data/features/missing_appraisals_file.feature +0 -23
- data/features/step_definitions/dependency_steps.rb +0 -24
- data/features/support/aruba.rb +0 -4
- data/features/support/env.rb +0 -11
- data/spec/acceptance/cli_spec.rb +0 -233
data/features/appraisals.feature
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
@disable-bundler
|
2
|
-
Feature: run a rake task through several appraisals
|
3
|
-
|
4
|
-
Background:
|
5
|
-
Given a directory named "projecto"
|
6
|
-
And the following installed dummy gems:
|
7
|
-
| name | version |
|
8
|
-
| dummy_girl | 1.3.0 |
|
9
|
-
| dummy_girl | 1.3.2 |
|
10
|
-
| dummy_rake | 0.8.7 |
|
11
|
-
| dummy_rake | 0.9.0 |
|
12
|
-
| dummy_sass | 3.1.0 |
|
13
|
-
| dummy_spec | 3.1.9 |
|
14
|
-
When I cd to "projecto"
|
15
|
-
And I write to "Gemfile" with:
|
16
|
-
"""
|
17
|
-
gem "dummy_rake", "0.8.7"
|
18
|
-
gem "dummy_girl"
|
19
|
-
|
20
|
-
group :assets do
|
21
|
-
gem 'dummy_sass', "~> 3.1.0"
|
22
|
-
end
|
23
|
-
|
24
|
-
group :test, :development do
|
25
|
-
gem 'dummy_spec', "~> 3.1.0"
|
26
|
-
end
|
27
|
-
"""
|
28
|
-
When I add "appraisal" from this project as a dependency
|
29
|
-
And I write to "Appraisals" with:
|
30
|
-
"""
|
31
|
-
appraise "1.3.2" do
|
32
|
-
gem "dummy_girl", "1.3.2"
|
33
|
-
end
|
34
|
-
|
35
|
-
appraise "1.3.0" do
|
36
|
-
gem "dummy_girl", "1.3.0"
|
37
|
-
gem "dummy_rake", "0.9.0"
|
38
|
-
end
|
39
|
-
"""
|
40
|
-
When I write to "Rakefile" with:
|
41
|
-
"""
|
42
|
-
require 'rubygems'
|
43
|
-
require 'bundler/setup'
|
44
|
-
require 'appraisal'
|
45
|
-
|
46
|
-
task :version do
|
47
|
-
require 'dummy_girl'
|
48
|
-
puts "Loaded #{$dummy_girl_version}"
|
49
|
-
end
|
50
|
-
|
51
|
-
task :fail do
|
52
|
-
require 'dummy_girl'
|
53
|
-
puts "Fail #{$dummy_girl_version}"
|
54
|
-
raise
|
55
|
-
end
|
56
|
-
|
57
|
-
task :default => :version
|
58
|
-
"""
|
59
|
-
When I successfully run `bundle install --local`
|
60
|
-
And I successfully run `bundle exec rake appraisal:install --trace`
|
61
|
-
|
62
|
-
Scenario: run a specific task with one appraisal
|
63
|
-
When I successfully run `bundle exec rake appraisal:1.3.0 version --trace`
|
64
|
-
Then the output should contain "Loaded 1.3.0"
|
65
|
-
|
66
|
-
Scenario: run a specific task with all appraisals
|
67
|
-
When I successfully run `bundle exec rake appraisal version --trace`
|
68
|
-
Then the output should contain "Loaded 1.3.0"
|
69
|
-
And the output should contain "Loaded 1.3.2"
|
70
|
-
And the output should not contain "Invoke version"
|
71
|
-
|
72
|
-
Scenario: run the default task with one appraisal
|
73
|
-
When I successfully run `bundle exec rake appraisal:1.3.0 --trace`
|
74
|
-
Then the output should contain "Loaded 1.3.0"
|
75
|
-
|
76
|
-
Scenario: run the default task with all appraisals
|
77
|
-
When I successfully run `bundle exec rake appraisal --trace`
|
78
|
-
Then the output should contain "Loaded 1.3.0"
|
79
|
-
And the output should contain "Loaded 1.3.2"
|
80
|
-
|
81
|
-
Scenario: run a failing task with one appraisal
|
82
|
-
When I run `bundle exec rake appraisal:1.3.0 fail --trace`
|
83
|
-
Then the output should contain "Fail 1.3.0"
|
84
|
-
And the exit status should be 1
|
85
|
-
|
86
|
-
Scenario: run a failing task with all appraisals
|
87
|
-
When I run `bundle exec rake appraisal fail --trace`
|
88
|
-
Then the output should contain "Fail 1.3.2"
|
89
|
-
But the output should not contain "Fail 1.3.0"
|
90
|
-
And the exit status should be 1
|
91
|
-
|
92
|
-
Scenario: run a cleanup task
|
93
|
-
When I run `bundle exec rake appraisal:cleanup --trace`
|
94
|
-
Then a file named "gemfiles/1.3.0.gemfile" should not exist
|
95
|
-
And a file named "gemfiles/1.3.0.gemfile.lock" should not exist
|
96
|
-
And a file named "gemfiles/1.3.2.gemfile" should not exist
|
97
|
-
And a file named "gemfiles/1.3.2.gemfile.lock" should not exist
|
98
|
-
|
99
|
-
Scenario: install gems within groups
|
100
|
-
Then the file "gemfiles/1.3.0.gemfile" should contain:
|
101
|
-
"""
|
102
|
-
group :assets do
|
103
|
-
gem "dummy_sass", "~> 3.1.0"
|
104
|
-
end
|
105
|
-
"""
|
@@ -1,70 +0,0 @@
|
|
1
|
-
@disable-bundler
|
2
|
-
Feature: Bundler Gemfile Compatibility
|
3
|
-
|
4
|
-
Scenario: Parsing Gemfile
|
5
|
-
Given the following installed dummy gems:
|
6
|
-
| name | version |
|
7
|
-
| bacon | 1.0.0 |
|
8
|
-
| bread | 1.0.0 |
|
9
|
-
| miso_soup | 1.0.0 |
|
10
|
-
| rice | 1.0.0 |
|
11
|
-
And a git repository exists for gem "egg" with version "0.1.0"
|
12
|
-
And I write to "Gemfile" with:
|
13
|
-
"""
|
14
|
-
source "https://rubygems.org"
|
15
|
-
ruby RUBY_VERSION
|
16
|
-
|
17
|
-
git "./egg" do
|
18
|
-
gem "egg"
|
19
|
-
end
|
20
|
-
|
21
|
-
group :breakfast do
|
22
|
-
gem "bacon"
|
23
|
-
end
|
24
|
-
"""
|
25
|
-
And I add "appraisal" from this project as a dependency
|
26
|
-
And I write to "Appraisals" with:
|
27
|
-
"""
|
28
|
-
appraise "japanese" do
|
29
|
-
gem "rice"
|
30
|
-
gem "miso_soup"
|
31
|
-
end
|
32
|
-
|
33
|
-
appraise "english" do
|
34
|
-
gem "bread"
|
35
|
-
end
|
36
|
-
"""
|
37
|
-
And I write to "Rakefile" with:
|
38
|
-
"""
|
39
|
-
require 'rubygems'
|
40
|
-
require 'bundler/setup'
|
41
|
-
require 'appraisal'
|
42
|
-
"""
|
43
|
-
When I successfully run `bundle install --local`
|
44
|
-
And I successfully run `bundle exec rake appraisal:gemfiles --trace`
|
45
|
-
Then the file "gemfiles/japanese.gemfile" should contain:
|
46
|
-
"""
|
47
|
-
source "https://rubygems.org"
|
48
|
-
"""
|
49
|
-
And the file "gemfiles/japanese.gemfile" should contain a correct ruby directive
|
50
|
-
And the file "gemfiles/japanese.gemfile" should contain:
|
51
|
-
"""
|
52
|
-
gem "rice"
|
53
|
-
gem "miso_soup"
|
54
|
-
"""
|
55
|
-
And the file "gemfiles/japanese.gemfile" should contain:
|
56
|
-
"""
|
57
|
-
git "./egg" do
|
58
|
-
gem "egg"
|
59
|
-
end
|
60
|
-
"""
|
61
|
-
And the file "gemfiles/japanese.gemfile" should contain:
|
62
|
-
"""
|
63
|
-
group :breakfast do
|
64
|
-
gem "bacon"
|
65
|
-
end
|
66
|
-
"""
|
67
|
-
And the file "gemfiles/english.gemfile" should contain:
|
68
|
-
"""
|
69
|
-
gem "bread"
|
70
|
-
"""
|
data/features/gemspec.feature
DELETED
@@ -1,68 +0,0 @@
|
|
1
|
-
@disable-bundler
|
2
|
-
Feature: appraisals using an existing gemspec
|
3
|
-
|
4
|
-
Background:
|
5
|
-
Given a directory named "gemspecced"
|
6
|
-
And the following installed dummy gems:
|
7
|
-
| name | version |
|
8
|
-
| dummy_girl | 1.3.0 |
|
9
|
-
| dummy_girl | 1.3.2 |
|
10
|
-
When I cd to "gemspecced"
|
11
|
-
And I write to "gemspecced.gemspec" with:
|
12
|
-
"""
|
13
|
-
Gem::Specification.new do |s|
|
14
|
-
s.name = %q{gemspecced}
|
15
|
-
s.version = '0.1'
|
16
|
-
s.summary = %q{featureful!}
|
17
|
-
|
18
|
-
s.add_development_dependency('dummy_girl', '1.3.2')
|
19
|
-
end
|
20
|
-
"""
|
21
|
-
And a directory named "specdir"
|
22
|
-
And I write to "specdir/gemspecced.gemspec" with:
|
23
|
-
"""
|
24
|
-
Gem::Specification.new do |s|
|
25
|
-
s.name = %q{gemspecced}
|
26
|
-
s.version = '0.1'
|
27
|
-
s.summary = %q{featureful!}
|
28
|
-
|
29
|
-
s.add_development_dependency('dummy_girl', '1.3.0')
|
30
|
-
end
|
31
|
-
"""
|
32
|
-
And I write to "Appraisals" with:
|
33
|
-
"""
|
34
|
-
appraise "stock" do
|
35
|
-
gem "rake"
|
36
|
-
end
|
37
|
-
"""
|
38
|
-
When I write to "Rakefile" with:
|
39
|
-
"""
|
40
|
-
require 'rubygems'
|
41
|
-
require 'bundler/setup'
|
42
|
-
require 'appraisal'
|
43
|
-
task :version do
|
44
|
-
require 'dummy_girl'
|
45
|
-
puts "Loaded #{$dummy_girl_version}"
|
46
|
-
end
|
47
|
-
"""
|
48
|
-
|
49
|
-
Scenario: run a gem in the gemspec
|
50
|
-
And I write to "Gemfile" with:
|
51
|
-
"""
|
52
|
-
gemspec
|
53
|
-
"""
|
54
|
-
When I add "appraisal" from this project as a dependency
|
55
|
-
And I successfully run `bundle install --local`
|
56
|
-
And I successfully run `bundle exec rake appraisal:install --trace`
|
57
|
-
And I run `bundle exec rake appraisal version --trace`
|
58
|
-
Then the output should contain "Loaded 1.3.2"
|
59
|
-
|
60
|
-
Scenario: run a gem in the gemspec via path
|
61
|
-
And I write to "Gemfile" with:
|
62
|
-
"""
|
63
|
-
gemspec :path => './specdir'
|
64
|
-
"""
|
65
|
-
When I add "appraisal" from this project as a dependency
|
66
|
-
When I successfully run `bundle exec rake appraisal:install --trace`
|
67
|
-
When I run `bundle exec rake appraisal version --trace`
|
68
|
-
Then the output should contain "Loaded 1.3.0"
|
@@ -1,23 +0,0 @@
|
|
1
|
-
@disable-bundler
|
2
|
-
Feature: raise an exception when there is no Appraisal file
|
3
|
-
|
4
|
-
Scenario: No Appraisal file
|
5
|
-
Given a directory named "projecto"
|
6
|
-
And the following installed dummy gems:
|
7
|
-
| name | version |
|
8
|
-
| dummy_girl | 1.3.0 |
|
9
|
-
And I cd to "projecto"
|
10
|
-
And I write to "Gemfile" with:
|
11
|
-
"""
|
12
|
-
gem "dummy_girl"
|
13
|
-
"""
|
14
|
-
And I add "appraisal" from this project as a dependency
|
15
|
-
And I write to "Rakefile" with:
|
16
|
-
"""
|
17
|
-
require 'rubygems'
|
18
|
-
require 'bundler/setup'
|
19
|
-
require 'appraisal'
|
20
|
-
"""
|
21
|
-
And I successfully run `bundle install --local`
|
22
|
-
When I run `bundle exec rake appraisal:install --trace`
|
23
|
-
Then the output should contain "Unable to locate 'Appraisals' file in the current directory."
|
@@ -1,24 +0,0 @@
|
|
1
|
-
When /^I add "([^"]*)" from this project as a dependency$/ do |gem_name|
|
2
|
-
append_to_file('Gemfile', %{\ngem "#{gem_name}", :path => "#{PROJECT_ROOT}"})
|
3
|
-
end
|
4
|
-
|
5
|
-
Given /^the following installed dummy gems:$/ do |table|
|
6
|
-
table.hashes.each { |hash| build_gem(hash["name"], hash["version"]) }
|
7
|
-
end
|
8
|
-
|
9
|
-
Given /^a git repository exists for gem "(.*?)" with version "(.*?)"$/ do |gem_name, version|
|
10
|
-
build_gem(gem_name, version)
|
11
|
-
cd gem_name
|
12
|
-
run_simple 'git init .'
|
13
|
-
run_simple 'git config user.email "appraisal@thoughtbot.com"'
|
14
|
-
run_simple 'git config user.name "Appraisal"'
|
15
|
-
run_simple 'git add .'
|
16
|
-
run_simple 'git commit -a -m "initial commit"'
|
17
|
-
dirs.pop
|
18
|
-
end
|
19
|
-
|
20
|
-
Then /^the file "(.*?)" should contain a correct ruby directive$/ do |filename|
|
21
|
-
in_current_dir do
|
22
|
-
File.read(filename).should match(/^ruby "#{RUBY_VERSION}"$/)
|
23
|
-
end
|
24
|
-
end
|
data/features/support/aruba.rb
DELETED
data/features/support/env.rb
DELETED
@@ -1,11 +0,0 @@
|
|
1
|
-
require 'aruba/cucumber'
|
2
|
-
|
3
|
-
PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')).freeze
|
4
|
-
TMP_GEM_ROOT = File.join(PROJECT_ROOT, "tmp", "gems")
|
5
|
-
|
6
|
-
Before do
|
7
|
-
FileUtils.rm_rf(TMP_GEM_ROOT)
|
8
|
-
FileUtils.mkdir_p(TMP_GEM_ROOT)
|
9
|
-
end
|
10
|
-
|
11
|
-
ENV["GEM_PATH"] = [TMP_GEM_ROOT, ENV["GEM_PATH"]].join(":")
|
data/spec/acceptance/cli_spec.rb
DELETED
@@ -1,233 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
require 'appraisal/utils'
|
3
|
-
|
4
|
-
describe 'CLI' do
|
5
|
-
context 'appraisal (with no arguments)' do
|
6
|
-
it 'runs install command' do
|
7
|
-
build_appraisal_file <<-Appraisal
|
8
|
-
appraise '1.0.0' do
|
9
|
-
gem 'dummy', '1.0.0'
|
10
|
-
end
|
11
|
-
Appraisal
|
12
|
-
|
13
|
-
run_simple 'appraisal'
|
14
|
-
|
15
|
-
expect(file 'gemfiles/1.0.0.gemfile').to be_exists
|
16
|
-
expect(file 'gemfiles/1.0.0.gemfile.lock').to be_exists
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
context 'appraisal (with arguments)' do
|
21
|
-
before do
|
22
|
-
build_appraisal_file <<-Appraisal
|
23
|
-
appraise '1.0.0' do
|
24
|
-
gem 'dummy', '1.0.0'
|
25
|
-
end
|
26
|
-
|
27
|
-
appraise '1.1.0' do
|
28
|
-
gem 'dummy', '1.1.0'
|
29
|
-
end
|
30
|
-
Appraisal
|
31
|
-
|
32
|
-
run_simple 'appraisal install'
|
33
|
-
write_file 'test.rb', 'puts "Running: #{$dummy_version}"'
|
34
|
-
end
|
35
|
-
|
36
|
-
it 'sets APPRAISAL_INITIALIZED environment variable' do
|
37
|
-
write_file 'test.rb', <<-TEST_FILE.strip_heredoc
|
38
|
-
if ENV['APPRAISAL_INITIALIZED']
|
39
|
-
puts "Appraisal initialized!"
|
40
|
-
end
|
41
|
-
TEST_FILE
|
42
|
-
|
43
|
-
test_command = 'appraisal 1.0.0 ruby -rbundler/setup -rdummy test.rb'
|
44
|
-
run_simple test_command
|
45
|
-
expect(output_from test_command).to include 'Appraisal initialized!'
|
46
|
-
end
|
47
|
-
|
48
|
-
context 'with appraisal name' do
|
49
|
-
it 'runs the given command against a correct versions of dependency' do
|
50
|
-
test_command = 'appraisal 1.0.0 ruby -rbundler/setup -rdummy test.rb'
|
51
|
-
run_simple test_command
|
52
|
-
|
53
|
-
expect(output_from test_command).to include 'Running: 1.0.0'
|
54
|
-
expect(output_from test_command).to_not include 'Running: 1.1.0'
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
context 'without appraisal name' do
|
59
|
-
it 'runs the given command against all versions of dependency' do
|
60
|
-
test_command = 'appraisal ruby -rbundler/setup -rdummy test.rb'
|
61
|
-
run_simple test_command
|
62
|
-
|
63
|
-
expect(output_from test_command).to include 'Running: 1.0.0'
|
64
|
-
expect(output_from test_command).to include 'Running: 1.1.0'
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context 'appraisal generate' do
|
70
|
-
it 'generates the gemfiles' do
|
71
|
-
build_appraisal_file <<-Appraisal
|
72
|
-
appraise '1.0.0' do
|
73
|
-
gem 'dummy', '1.0.0'
|
74
|
-
end
|
75
|
-
|
76
|
-
appraise '1.1.0' do
|
77
|
-
gem 'dummy', '1.1.0'
|
78
|
-
end
|
79
|
-
Appraisal
|
80
|
-
|
81
|
-
run_simple 'appraisal generate'
|
82
|
-
|
83
|
-
expect(file 'gemfiles/1.0.0.gemfile').to be_exists
|
84
|
-
expect(file 'gemfiles/1.1.0.gemfile').to be_exists
|
85
|
-
expect(content_of 'gemfiles/1.0.0.gemfile').to eq <<-gemfile.strip_heredoc
|
86
|
-
# This file was generated by Appraisal
|
87
|
-
|
88
|
-
source "https://rubygems.org"
|
89
|
-
|
90
|
-
gem "appraisal", :path=>"#{PROJECT_ROOT}"
|
91
|
-
gem "dummy", "1.0.0"
|
92
|
-
gemfile
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context 'appraisal install' do
|
97
|
-
it 'installs the dependencies' do
|
98
|
-
build_appraisal_file <<-Appraisal
|
99
|
-
appraise '1.0.0' do
|
100
|
-
gem 'dummy', '1.0.0'
|
101
|
-
end
|
102
|
-
|
103
|
-
appraise '1.1.0' do
|
104
|
-
gem 'dummy', '1.1.0'
|
105
|
-
end
|
106
|
-
Appraisal
|
107
|
-
|
108
|
-
run_simple 'appraisal install'
|
109
|
-
|
110
|
-
expect(file 'gemfiles/1.0.0.gemfile.lock').to be_exists
|
111
|
-
expect(file 'gemfiles/1.1.0.gemfile.lock').to be_exists
|
112
|
-
end
|
113
|
-
|
114
|
-
it 'relativize directory in gemfile.lock' do
|
115
|
-
build_gemspec
|
116
|
-
add_gemspec_to_gemfile
|
117
|
-
build_appraisal_file <<-Appraisal
|
118
|
-
appraise '1.0.0' do
|
119
|
-
gem 'dummy', '1.0.0'
|
120
|
-
end
|
121
|
-
Appraisal
|
122
|
-
|
123
|
-
run_simple 'appraisal install'
|
124
|
-
|
125
|
-
expect(content_of 'gemfiles/1.0.0.gemfile.lock').not_to include current_dir
|
126
|
-
end
|
127
|
-
|
128
|
-
context 'with job size', parallel: true do
|
129
|
-
before do
|
130
|
-
build_appraisal_file <<-Appraisal
|
131
|
-
appraise '1.0.0' do
|
132
|
-
gem 'dummy', '1.0.0'
|
133
|
-
end
|
134
|
-
Appraisal
|
135
|
-
end
|
136
|
-
|
137
|
-
it 'accepts --jobs option to set job size' do
|
138
|
-
run_simple 'appraisal install --jobs=2'
|
139
|
-
|
140
|
-
expect(output_from 'appraisal install --jobs=2').to include
|
141
|
-
'bundle install --gemfile=gemfiles/1.0.0.gemfile --jobs=2'
|
142
|
-
end
|
143
|
-
|
144
|
-
it 'ignores --jobs option if the job size is less than or equal to 1' do
|
145
|
-
run_simple 'appraisal install --jobs=0'
|
146
|
-
|
147
|
-
expect(output_from 'appraisal install --jobs=0').not_to include
|
148
|
-
'bundle install --gemfile=gemfiles/1.0.0.gemfile'
|
149
|
-
expect(output_from 'appraisal install --jobs=0').not_to include
|
150
|
-
'bundle install --gemfile=gemfiles/1.0.0.gemfile --jobs=0'
|
151
|
-
expect(output_from 'appraisal install --jobs=0').not_to include
|
152
|
-
'bundle install --gemfile=gemfiles/1.0.0.gemfile --jobs=1'
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
context 'appraisal clean' do
|
158
|
-
it 'remove all gemfiles from gemfiles directory' do
|
159
|
-
build_appraisal_file <<-Appraisal
|
160
|
-
appraise '1.0.0' do
|
161
|
-
gem 'dummy', '1.0.0'
|
162
|
-
end
|
163
|
-
Appraisal
|
164
|
-
|
165
|
-
run_simple 'appraisal install'
|
166
|
-
write_file 'gemfiles/non_related_file', ''
|
167
|
-
|
168
|
-
run_simple 'appraisal clean'
|
169
|
-
|
170
|
-
expect(file 'gemfiles/1.0.0.gemfile').not_to be_exists
|
171
|
-
expect(file 'gemfiles/1.0.0.gemfile.lock').not_to be_exists
|
172
|
-
expect(file 'gemfiles/non_related_file').to be_exists
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
context 'appraisal update' do
|
177
|
-
before do
|
178
|
-
build_gem 'dummy2', '1.0.0'
|
179
|
-
|
180
|
-
build_appraisal_file <<-Appraisal
|
181
|
-
appraise 'dummy' do
|
182
|
-
gem 'dummy', '~> 1.0.0'
|
183
|
-
gem 'dummy2', '~> 1.0.0'
|
184
|
-
end
|
185
|
-
Appraisal
|
186
|
-
|
187
|
-
run_simple 'appraisal install'
|
188
|
-
build_gem 'dummy', '1.0.1'
|
189
|
-
build_gem 'dummy2', '1.0.1'
|
190
|
-
end
|
191
|
-
|
192
|
-
after do
|
193
|
-
in_current_dir do
|
194
|
-
`gem uninstall dummy -v 1.0.1`
|
195
|
-
`gem uninstall dummy2 -a`
|
196
|
-
end
|
197
|
-
end
|
198
|
-
|
199
|
-
context 'with no arguments' do
|
200
|
-
it 'updates all the gems' do
|
201
|
-
run_simple 'appraisal update'
|
202
|
-
|
203
|
-
expect(content_of 'gemfiles/dummy.gemfile.lock').to include 'dummy (1.0.1)'
|
204
|
-
expect(content_of 'gemfiles/dummy.gemfile.lock').to include 'dummy2 (1.0.1)'
|
205
|
-
end
|
206
|
-
end
|
207
|
-
|
208
|
-
context 'with a list of gems' do
|
209
|
-
it 'only updates specified gems' do
|
210
|
-
run_simple 'appraisal update dummy'
|
211
|
-
|
212
|
-
expect(content_of 'gemfiles/dummy.gemfile.lock').to include 'dummy (1.0.1)'
|
213
|
-
expect(content_of 'gemfiles/dummy.gemfile.lock').to include 'dummy2 (1.0.0)'
|
214
|
-
end
|
215
|
-
end
|
216
|
-
end
|
217
|
-
|
218
|
-
context 'appraisal help' do
|
219
|
-
it 'prints usage along with commands, and list of appraisals' do
|
220
|
-
build_appraisal_file <<-Appraisal
|
221
|
-
appraise '1.0.0' do
|
222
|
-
gem 'dummy', '1.0.0'
|
223
|
-
end
|
224
|
-
Appraisal
|
225
|
-
|
226
|
-
run_simple 'appraisal help'
|
227
|
-
|
228
|
-
expect(output_from 'appraisal help').to include 'Usage:'
|
229
|
-
expect(output_from 'appraisal help').to include 'appraisal [APPRAISAL_NAME] EXTERNAL_COMMAND'
|
230
|
-
expect(output_from 'appraisal help').to include '1.0.0'
|
231
|
-
end
|
232
|
-
end
|
233
|
-
end
|