vendorificator 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/.travis.yml +5 -2
  2. data/Gemfile +0 -1
  3. data/README.md +9 -0
  4. data/Rakefile +7 -1
  5. data/features/chef_cookbook.feature +4 -6
  6. data/features/deprecated.feature +4 -4
  7. data/features/git.feature +41 -2
  8. data/features/needed.feature +8 -7
  9. data/features/smoke.feature +7 -5
  10. data/features/status.feature +15 -15
  11. data/features/step_definitions/aruba_ext.rb +11 -0
  12. data/features/step_definitions/basic.rb +16 -43
  13. data/features/step_definitions/git.rb +11 -11
  14. data/features/step_definitions/vendorificator.rb +4 -6
  15. data/features/support/aruba_ext.rb +23 -0
  16. data/features/support/env.rb +13 -20
  17. data/features/support/minigit.rb +37 -0
  18. data/features/tarball.feature +7 -7
  19. data/features/tarball_edit.feature +1 -1
  20. data/features/vendor.feature +2 -2
  21. data/lib/vendorificator/cli.rb +36 -61
  22. data/lib/vendorificator/config.rb +5 -42
  23. data/lib/vendorificator/environment.rb +111 -0
  24. data/lib/vendorificator/hooks/chef_cookbook.rb +59 -23
  25. data/lib/vendorificator/vendor/archive.rb +2 -2
  26. data/lib/vendorificator/vendor/chef_cookbook.rb +2 -2
  27. data/lib/vendorificator/vendor/download.rb +44 -0
  28. data/lib/vendorificator/vendor/git.rb +9 -11
  29. data/lib/vendorificator/vendor.rb +105 -48
  30. data/lib/vendorificator/version.rb +1 -1
  31. data/lib/vendorificator.rb +2 -0
  32. data/spec/spec_helper.rb +1 -0
  33. data/spec/vendorificator/vendor_spec.rb +15 -7
  34. data/vendorificator.gemspec +4 -4
  35. metadata +24 -21
  36. data/features/support/world_git.rb +0 -40
  37. data/features/support/world_runs.rb +0 -93
  38. data/lib/vendorificator/repo.rb +0 -69
data/.travis.yml CHANGED
@@ -4,7 +4,10 @@ rvm:
4
4
  - 1.8.7
5
5
  - 1.9.2
6
6
  - 1.9.3
7
- # - jruby-18mode # JRuby in 1.8 mode
8
- # - jruby-19mode # JRuby in 1.9 mode
7
+ - 2.0.0
8
+ - ree
9
+ - jruby-18mode
10
+ - jruby-19mode
11
+ - jruby-head
9
12
  - rbx-18mode
10
13
  - rbx-19mode
data/Gemfile CHANGED
@@ -4,7 +4,6 @@ source 'https://rubygems.org'
4
4
  gemspec
5
5
 
6
6
  group :development do
7
- gem "ZenTest", "4.8.3"
8
7
  git "git://github.com/mpasternacki/wrong.git",
9
8
  :ref => 'ad025241e5772373264d1bf62168e2bf3780ccf9' do
10
9
  gem 'wrong'
data/README.md CHANGED
@@ -129,6 +129,15 @@ vendor 'generated', :version => '0.23' do |mod|
129
129
  end
130
130
  ```
131
131
 
132
+ #### download
133
+
134
+ Downloads a single file:
135
+
136
+ ```ruby
137
+ download 'socks.el', :url => 'http://cvs.savannah.gnu.org/viewvc/*checkout*/w3/lisp/socks.el?root=w3&revision=HEAD'
138
+ download 'http://mumble.net/~campbell/emacs/paredit.el'
139
+ ```
140
+
132
141
  #### archive
133
142
 
134
143
  Archive takes a tar.gz, tar.bz2, or zip file, downloads it, and
data/Rakefile CHANGED
@@ -18,7 +18,9 @@ begin
18
18
  require 'cucumber/rake/task'
19
19
 
20
20
  desc 'Run Cucumber features'
21
- Cucumber::Rake::Task.new(:features)
21
+ Cucumber::Rake::Task.new(:features) do |t|
22
+ t.fork = false
23
+ end
22
24
  rescue LoadError
23
25
  desc 'Cucumber rake task not available'
24
26
  task :features do
@@ -32,4 +34,8 @@ Rake::TestTask.new :spec do |task|
32
34
  task.test_files = FileList['spec/**/*_spec.rb']
33
35
  end
34
36
 
37
+ # https://github.com/jruby/jruby/issues/405
38
+ mkdir_p 'tmp'
39
+ ENV['TMPDIR'] ||= File.join(Dir.pwd, 'tmp')
40
+
35
41
  task :default => [:spec, :features]
@@ -1,13 +1,11 @@
1
1
  Feature: Chef cookbooks from Opscode Community website
2
2
 
3
3
  Scenario: A single cookbook, without dependencies
4
-
5
- Scenario: Version & checksum
6
4
  Given a repository with following Vendorfile:
7
5
  """ruby
8
6
  chef_cookbook 'apt'
9
7
  """
10
- When I run "vendor sync"
8
+ When I successfully run `vendor sync`
11
9
  Then following has been conjured:
12
10
  | Name | cookbooks/apt |
13
11
  | With file | metadata.rb |
@@ -17,7 +15,7 @@ Scenario: Dependency hook
17
15
  """ruby
18
16
  chef_cookbook 'memcached'
19
17
  """
20
- When I run "vendor sync"
18
+ When I successfully run `vendor sync`
21
19
  Then following has been conjured:
22
20
  | Name | cookbooks/memcached | cookbooks/runit |
23
21
  | With file | metadata.rb | metadata.rb |
@@ -28,7 +26,7 @@ Scenario: Ignored dependency
28
26
  chef_cookbook_ignore_dependencies ['runit']
29
27
  chef_cookbook 'memcached'
30
28
  """
31
- When I run "vendor sync"
29
+ When I successfully run `vendor sync`
32
30
  Then following has been conjured:
33
31
  | Name | cookbooks/memcached |
34
32
  | With file | metadata.rb |
@@ -42,7 +40,7 @@ Scenario: Ignored all dependencies
42
40
  chef_cookbook_ignore_dependencies true
43
41
  chef_cookbook 'chef-server'
44
42
  """
45
- When I run "vendor sync"
43
+ When I successfully run `vendor sync`
46
44
  Then following has been conjured:
47
45
  | Name | cookbooks/chef-server |
48
46
  | With file | metadata.rb |
@@ -9,9 +9,9 @@ Background:
9
9
  """
10
10
 
11
11
  Scenario: `vendorify` command prints a deprecation warning
12
- When I run "vendorify"
13
- Then command output includes "DEPRECATED: `vendorify` command is deprecated, run `vendor` instead"
12
+ When I successfully run `vendorify`
13
+ Then the output should contain "DEPRECATED"
14
14
 
15
15
  Scenario: `vendor` command doesn't print a deprecation warning
16
- When I run "vendor"
17
- Then command output does not include "DEPRECATED: `vendorify` command is deprecated, run `vendor` instead"
16
+ When I successfully run `vendor`
17
+ Then the output should not contain "DEPRECATED"
data/features/git.feature CHANGED
@@ -1,12 +1,51 @@
1
1
  Feature: Git-based vendor module
2
2
 
3
- Scenario:
3
+ Scenario: Vendorificating a git repo
4
4
  Given a repository with following Vendorfile:
5
5
  """ruby
6
6
  git "file://#{ENV['FIXTURES_DIR']}/git/testrepo"
7
7
  """
8
- When I run "vendor sync"
8
+ When I successfully run `vendor sync`
9
9
  Then following has been conjured:
10
10
  | Name | testrepo |
11
11
  | Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
12
12
  | With file | test/alias.c |
13
+
14
+ Scenario: Vendorificating a subdirectory from a git repo
15
+ Given a repository with following Vendorfile:
16
+ """ruby
17
+ git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
18
+ :subdirectory => 'test'
19
+ """
20
+ When I successfully run `vendor sync`
21
+ Then following has been conjured:
22
+ | Name | testrepo |
23
+ | Version | 10e9ac58c77bc229d8c59a5b4eb7422916453148 |
24
+ | With file | alias.c |
25
+ | Without file | test/alias.c |
26
+
27
+ Scenario: Vendorificating a certain branch from a git repo
28
+ Given a repository with following Vendorfile:
29
+ """ruby
30
+ git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
31
+ :branch => 'topic/pink'
32
+ """
33
+ When I successfully run `vendor sync`
34
+ Then following has been conjured:
35
+ | Name | testrepo |
36
+ | Version | ecbfa229ba5f11c05b18bcc4f7c32b8f25d63f8c |
37
+ | With file | README.md |
38
+
39
+ Scenario: Vendorificating a certain revision from a git repo
40
+ Given a repository with following Vendorfile:
41
+ """ruby
42
+ git "file://#{ENV['FIXTURES_DIR']}/git/testrepo",
43
+ :revision => '6ff1be'
44
+ """
45
+ When I successfully run `vendor sync`
46
+ Then following has been conjured:
47
+ | Name | testrepo |
48
+ | Version | 6ff1be9c3819c93a2f41e0ddc09f252fcf154f34 |
49
+ | With file | alias.c |
50
+ | Without file | test/alias.c |
51
+
@@ -6,11 +6,12 @@ Scenario: already downloaded tarball
6
6
  archive :testrepo, :version => '0.1',
7
7
  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
8
8
  """
9
- When I run "vendor sync"
9
+ When I successfully run `vendor sync`
10
10
  Then I'm on "master" branch
11
- And command output includes /module\s+testrepo/
12
- And command output includes "testrepo-0.1.tar.gz"
13
- Then I run "vendor sync"
14
- And command output includes /module\s+testrepo/
15
- And command output includes /up to date\s+testrepo/
16
- And command output does not include "testrepo-0.1.tar.gz"
11
+ And the last output should match /module\s+testrepo/
12
+ And the last output should match "testrepo-0.1.tar.gz"
13
+
14
+ When I successfully run `vendor sync`
15
+ Then the last output should match /module\s+testrepo/
16
+ And the last output should match /up to date\s+testrepo/
17
+ And the last output should not match "testrepo-0.1.tar.gz"
@@ -4,11 +4,13 @@ Feature: smoke test of the test suite
4
4
  I want to make sure that test environment itself does not emit smoke.
5
5
 
6
6
  Scenario: The default environment
7
- Given nothing in particular
8
- When nothing happens
9
- Then the README file exists
7
+ Given a repository with following Vendorfile:
8
+ """
9
+ """
10
+ Then a file named "README" should exist
11
+ And a 0 byte file named "Vendorfile" should exist
10
12
  And git repository is clean
11
- And git history has one commit
13
+ And git history has 1 commit
12
14
  And I'm on "master" branch
13
15
  And no other branch exists
14
-
16
+
@@ -12,16 +12,16 @@ Background:
12
12
  """
13
13
 
14
14
  Scenario: status new module
15
- When I run "vendor status"
16
- Then command output includes /new\s+generated\/0.23/
15
+ When I successfully run `vendor status`
16
+ Then the last output should match /new\s+generated\/0.23/
17
17
 
18
18
  Scenario: status up-to-date module
19
- When I run "vendor sync"
20
- And I run "vendor status"
21
- Then command output includes /up to date\s+generated\/0.23/
19
+ When I successfully run `vendor sync`
20
+ And I successfully run `vendor status`
21
+ Then the last output should match /up to date\s+generated\/0.23/
22
22
 
23
23
  Scenario: status outdated modules
24
- When I run "vendor sync"
24
+ When I successfully run `vendor sync`
25
25
  And I change Vendorfile to:
26
26
  """ruby
27
27
  vendor 'generated', :version => '0.42' do |v|
@@ -29,8 +29,8 @@ Scenario: status outdated modules
29
29
  File.open('VERSION', 'w') { |f| f.puts v.version }
30
30
  end
31
31
  """
32
- And I run "vendor status"
33
- Then command output includes /outdated\s+generated\/0.42/
32
+ And I successfully run `vendor status`
33
+ Then the last output should match /outdated\s+generated\/0.42/
34
34
 
35
35
  Scenario: Module's dependencies are statused if they are known
36
36
  When I change Vendorfile to:
@@ -38,10 +38,10 @@ Scenario: Module's dependencies are statused if they are known
38
38
  require 'vendorificator/vendor/chef_cookbook'
39
39
  chef_cookbook 'memcached'
40
40
  """
41
- And I run "vendor status"
42
- Then command output includes /new\s+memcached/
43
- And command output does not include "runit"
44
- When I run "vendor sync"
45
- And I run "vendor status"
46
- Then command output includes /up to date\s+memcached/
47
- And command output includes /up to date\s+runit/
41
+ And I successfully run `vendor status`
42
+ Then the last output should match /new\s+memcached/
43
+ And the last output should not match "runit"
44
+ When I successfully run `vendor sync`
45
+ And I successfully run `vendor status`
46
+ Then the last output should match /up to date\s+memcached/
47
+ And the last output should match /up to date\s+runit/
@@ -0,0 +1,11 @@
1
+ Then /^the last output should match (#{PATTERN})$/ do |expected|
2
+ assert { last_output =~ expected }
3
+ end
4
+
5
+ Then /^the last output should not match (#{PATTERN})$/ do |expected|
6
+ deny { last_output =~ expected }
7
+ end
8
+
9
+ Then /^it should fail$/ do
10
+ deny { last_exit_status == 0 }
11
+ end
@@ -6,47 +6,20 @@ When /^nothing happens$/ do
6
6
  nil # NOP
7
7
  end
8
8
 
9
- Then /^file "(.*?)" exists$/ do |path|
10
- assert { File.exists?(path) }
11
- end
12
-
13
- Then /^file "(.*?)" does not exist$/ do |path|
14
- deny { File.exists?(path) }
15
- end
16
-
17
- Then /^the README file exists$/ do
18
- step 'file "README" exists'
19
- end
20
-
21
- Then /^file "(.*?)" reads "(.*?)"$/ do |path, text|
22
- assert { File.read(path).strip == text.strip }
23
- end
24
-
25
- Given /^a repository with following Vendorfile:$/ do |string|
26
- commit_file('Vendorfile', string)
27
- end
28
-
29
- When /^I change Vendorfile to:$/ do |string|
30
- commit_file('Vendorfile', string, "Updated Vendorfile")
31
- end
32
-
33
- When /^I try to run "(.*?)"$/ do |command_string|
34
- run command_string
35
- end
36
-
37
- When /^I run "(.*?)"$/ do |command_string|
38
- step "I try to run \"#{command_string}\""
39
- assert { command_succeeded }
40
- end
41
-
42
- Then /the command has failed/ do
43
- deny { command_succeeded(false) }
44
- end
45
-
46
- Then /^command (output|stdout|stderr) includes (#{PATTERN})$/ do |stream, pat|
47
- assert { command_output(stream) =~ pat }
48
- end
49
-
50
- Then /^command (output|stdout|stderr) does not include (#{PATTERN})$/ do |stream, pat|
51
- deny { command_output(stream) =~ pat }
9
+ Given /^a repository with following Vendorfile:$/ do |vendorfile_contents|
10
+ create_dir 'working-repository'
11
+ cd 'working-repository'
12
+ run_simple 'git init'
13
+ # Configure Git username & email to unclutter console output
14
+ run_simple 'git config user.name Cucumber'
15
+ run_simple 'git config user.email cucumber@`hostname --fqdn`'
16
+ write_file('README', 'Lorem ipsum dolor sit amet')
17
+ write_file('Vendorfile', vendorfile_contents)
18
+ run_simple 'git add .'
19
+ run_simple 'git commit -m "New repo"'
20
+ end
21
+
22
+ When /^I change Vendorfile to:$/ do |vendorfile_contents|
23
+ write_file('Vendorfile', vendorfile_contents)
24
+ run_simple 'git commit -m "Updated Vendorfile" Vendorfile'
52
25
  end
@@ -1,39 +1,39 @@
1
1
  Then /^git repository is clean$/ do
2
- assert { repo_clean? }
2
+ assert { git.status(:porcelain => true) == '' }
3
3
  end
4
4
 
5
- Then /^git history has one commit$/ do
6
- assert { git.log.count == 1 }
5
+ Then /^git history has (\d+) commit(?:s)?$/ do |ncommits|
6
+ assert { git.rev_list(:all => true).lines.count == ncommits.to_i }
7
7
  end
8
8
 
9
9
  Then /^I\'m on "(.*?)" branch$/ do |expected_branch|
10
- assert { branch == expected_branch }
10
+ assert { git.rev_parse({:abbrev_ref => true}, 'HEAD').strip == expected_branch }
11
11
  end
12
12
 
13
13
  Then /^no other branch exists$/ do
14
- assert { branches.length == 1 }
14
+ assert { git.branch.lines.count == 1 }
15
15
  end
16
16
 
17
17
  Then /^branch "(.*?)" exists$/ do |branch_name|
18
- assert { branches.include?(branch_name) }
18
+ assert { git.heads.include?(branch_name) }
19
19
  end
20
20
 
21
21
  Then /^branch "(.*?)" does not exist$/ do |branch_name|
22
- deny { branches.include?(branch_name) }
22
+ deny { git.heads.include?(branch_name) }
23
23
  end
24
24
 
25
25
  Then /^tag "(.*?)" exists$/ do |tag_name|
26
- assert { tags.include?(tag_name) }
26
+ assert { git.tags.include?(tag_name) }
27
27
  end
28
28
 
29
29
  Then /^tag "(.*?)" does not exist$/ do |tag_name|
30
- deny { tags.include?(tag_name) }
30
+ deny { git.tags.include?(tag_name) }
31
31
  end
32
32
 
33
33
  Then /^tag matching (#{PATTERN}) exists$/ do |pat|
34
- assert { tags.any?{|t| t=~pat} }
34
+ assert { git.tags.any? { |t| t =~ pat } }
35
35
  end
36
36
 
37
37
  Then /^tag matching (#{PATTERN}) does not exist$/ do |pat|
38
- deny { tags.any?{|t| t=~pat} }
38
+ deny { git.tags.any? { |t| t =~ pat } }
39
39
  end
@@ -13,15 +13,13 @@ Then /^(?:the )?following has( not)? been conjured:$/ do |not_p, table|
13
13
  end
14
14
 
15
15
  if mod['With file']
16
- mod['With file'].lines.each do |path|
17
- step "file \"vendor/#{mod['Name']}/#{path.strip}\" #{exists_p}"
18
- end
16
+ check_file_presence(mod['With file'].lines.
17
+ map { |ln| File.join('vendor', mod['Name'], ln.strip) }, !not_p)
19
18
  end
20
19
 
21
20
  if mod['Without file']
22
- mod['Without file'].lines.each do |path|
23
- step "file \"vendor/#{mod['Name']}/#{path.strip}\" does not exist"
24
- end
21
+ check_file_presence(mod['Without file'].lines.
22
+ map { |ln| File.join('vendor', mod['Name'], ln.strip) }, !!not_p)
25
23
  end
26
24
  end
27
25
  end
@@ -0,0 +1,23 @@
1
+ module Vendorificator
2
+ module TestSupport
3
+ module ArubaExt
4
+ def last_process
5
+ processes.last.last
6
+ end
7
+
8
+ def last_stdout
9
+ last_process.stdout(@aruba_keep_ansi)
10
+ end
11
+
12
+ def last_stderr
13
+ last_process.stderr(@aruba_keep_ansi)
14
+ end
15
+
16
+ def last_output
17
+ last_stdout + last_stderr
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ World(Vendorificator::TestSupport::ArubaExt)
@@ -2,31 +2,24 @@ require 'fileutils'
2
2
  require 'pathname'
3
3
  require 'tmpdir'
4
4
 
5
+ require 'aruba/cucumber'
5
6
  require 'wrong'
6
7
 
7
8
  World(Wrong)
8
9
 
9
- # Run each test in a temporary directory, initialized as a git repository
10
- FileUtils::mkdir_p 'tmp'
11
-
12
- Before do
13
- @orig_wd = Dir.getwd
14
- @tmp_wd = Dir.mktmpdir(nil, 'tmp')
15
- Dir.chdir(@tmp_wd)
10
+ ENV['FIXTURES_DIR'] = Pathname.new(__FILE__).
11
+ dirname.join('..', 'fixtures').realpath.to_s
16
12
 
17
- commit_file('README', 'Lorem ipsum dolor sit amet')
13
+ # https://github.com/cucumber/aruba/pull/144
14
+ After do
15
+ processes.clear
18
16
  end
19
17
 
20
- After do |scenario|
21
- Dir::chdir(@orig_wd)
22
- if ENV['DEBUG'] || scenario.failed?
23
- puts "Keeping working directory #{@tmp_wd} for debugging"
24
- else
25
- FileUtils::rm_rf(@tmp_wd)
26
- end
27
- @tmp_wd = nil
18
+ Before do
19
+ @aruba_timeout_seconds = case defined?(RUBY_ENGINE) && RUBY_ENGINE
20
+ when 'ruby', nil then 3
21
+ when 'jruby' then 20
22
+ when 'rbx' then 10
23
+ else 5
24
+ end
28
25
  end
29
-
30
- ENV['FIXTURES_DIR'] = Pathname.new(__FILE__).
31
- dirname.join('..', 'fixtures').realpath.to_s
32
-
@@ -0,0 +1,37 @@
1
+ require 'minigit'
2
+
3
+ module Vendorificator
4
+ module TestSupport
5
+ module MiniGit
6
+ module MiniGitExt
7
+ def refs(kind)
8
+ show_ref(kind => true).lines.
9
+ map { |ln| ln =~ /[0-9a-f]{40} refs\/#{kind}\// and $'.strip }.
10
+ compact
11
+ rescue ::MiniGit::GitError
12
+ []
13
+ end
14
+
15
+ def heads
16
+ refs(:heads)
17
+ end
18
+
19
+ def tags
20
+ refs(:tags)
21
+ end
22
+ end
23
+
24
+ def git
25
+ @git ||= ::MiniGit::Capturing.new(current_dir)
26
+ end
27
+ end
28
+ end
29
+ end
30
+
31
+ class MiniGit
32
+ include Vendorificator::TestSupport::MiniGit::MiniGitExt
33
+ end
34
+
35
+ MiniGit.debug = true if ENV['DEBUG']
36
+
37
+ World(Vendorificator::TestSupport::MiniGit)
@@ -5,7 +5,7 @@ Scenario: just URL as name
5
5
  """ruby
6
6
  archive 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
7
7
  """
8
- When I run "vendor sync"
8
+ When I successfully run `vendor sync`
9
9
  Then following has been conjured:
10
10
  | Name | testrepo-0.1 |
11
11
  | Version | testrepo-0.1.tar.gz |
@@ -17,7 +17,7 @@ Scenario: URL as keyword
17
17
  archive :testrepo,
18
18
  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1.tar.gz'
19
19
  """
20
- When I run "vendor sync"
20
+ When I successfully run `vendor sync`
21
21
  Then following has been conjured:
22
22
  | Name | testrepo |
23
23
  | Version | testrepo-0.1.tar.gz |
@@ -31,7 +31,7 @@ Scenario: Version & checksum
31
31
  :version => '0.1',
32
32
  :checksum => 'ea207a896f929ffb3a1dfe128332d6134a18edab7c01b97bfb2b1c7eacebe0cb'
33
33
  """
34
- When I run "vendor sync"
34
+ When I successfully run `vendor sync`
35
35
  Then following has been conjured:
36
36
  | Name | testrepo |
37
37
  | Version | 0.1 |
@@ -45,9 +45,9 @@ Scenario: Wrong checksum
45
45
  :version => '0.1',
46
46
  :checksum => 'incorrect'
47
47
  """
48
- When I try to run "vendor sync"
49
- Then the command has failed
50
- Then following has not been conjured:
48
+ When I run `vendor sync`
49
+ Then it should fail
50
+ And following has not been conjured:
51
51
  | Name | testrepo |
52
52
  | With file | test/alias.c |
53
53
 
@@ -57,7 +57,7 @@ Scenario: Tarball without a root directory
57
57
  archive :testrepo,
58
58
  :url => 'http://test-assets.3ofcoins.net.s3-website-us-east-1.amazonaws.com/testrepo-0.1-noroot.tar.gz'
59
59
  """
60
- When I run "vendor sync"
60
+ When I successfully run `vendor sync`
61
61
  Then following has been conjured:
62
62
  | Name | testrepo |
63
63
  | With file | test/alias.c |
@@ -8,7 +8,7 @@ Scenario:
8
8
  FileUtils::rm Dir['test/archive*.c']
9
9
  end
10
10
  """
11
- When I run "vendor sync"
11
+ When I successfully run `vendor sync`
12
12
  Then following has been conjured:
13
13
  | Name | testrepo |
14
14
  | With file | test/alias.c |
@@ -8,9 +8,9 @@ Scenario:
8
8
  File.open('VERSION', 'w') { |f| f.puts v.version }
9
9
  end
10
10
  """
11
- When I run "vendor sync"
11
+ When I successfully run `vendor sync`
12
12
  Then the following has been conjured:
13
13
  | Name | generated |
14
14
  | Version | 0.23 |
15
15
  | With file | README |
16
- And file "vendor/generated/VERSION" reads "0.23"
16
+ And the file "vendor/generated/VERSION" should contain "0.23"