vagrant_spec 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2bd559c7081c147b71b1e3616f6f78532aa54a1c
4
- data.tar.gz: a003a4044ca5cbe33f27772dfea6d9b57cfacfed
3
+ metadata.gz: fb07a53bcd6698b0ad2af73417b1fb2235489274
4
+ data.tar.gz: 776a3dfe81a097b90e4c2a6ab68bf7803ec7c1a8
5
5
  SHA512:
6
- metadata.gz: ccea26d0ec98831823d8d0eb5e5c354550cf584cdc48be8a89cee634ba2f11654bd40864c2369c569df9dd5fff380decdc3861a9f39a6d0781a393309931a279
7
- data.tar.gz: d0f95a9c8536df17d1c0dbf3fc9724073df97a2193802bfed1770900244154790d7584047cec63e043ad700c3fc20fac4107126633d951cd220e8c5b579183db
6
+ metadata.gz: bed91f539ff20534a965e36b6300dc7c90c2ef10d0e2e189031cae58bbaa66cfc56068e3b9b815850b38bdf4b69d2a23b2f29413cee16313581cdac084b737cb
7
+ data.tar.gz: b44fb0bbe52e6223e5bfb97a0c6af652a8106fd0285f5c41e84f4b2644449d55e711958e0410fd4b513e30cab71a7a8277f50695c44eb189c57524bb87049ecf
data/CHANGELOG.md CHANGED
@@ -1,8 +1,19 @@
1
1
  # Change Log
2
2
 
3
- ## [Unreleased](https://github.com/miroswan/vagrant_spec/tree/HEAD)
3
+ ## [v0.0.5](https://github.com/miroswan/vagrant_spec/tree/v0.0.5) (2016-08-10)
4
+ [Full Changelog](https://github.com/miroswan/vagrant_spec/compare/v0.0.4...v0.0.5)
4
5
 
5
- [Full Changelog](https://github.com/miroswan/vagrant_spec/compare/v0.0.3...HEAD)
6
+ **Closed issues:**
7
+
8
+ - SSH Issue [\#14](https://github.com/miroswan/vagrant_spec/issues/14)
9
+ - Fix spelling and grammatical issues in the documentation [\#7](https://github.com/miroswan/vagrant_spec/issues/7)
10
+
11
+ **Merged pull requests:**
12
+
13
+ - Fixing SSH [\#13](https://github.com/miroswan/vagrant_spec/pull/13) ([miroswan](https://github.com/miroswan))
14
+
15
+ ## [v0.0.4](https://github.com/miroswan/vagrant_spec/tree/v0.0.4) (2016-08-10)
16
+ [Full Changelog](https://github.com/miroswan/vagrant_spec/compare/v0.0.3...v0.0.4)
6
17
 
7
18
  **Implemented enhancements:**
8
19
 
@@ -12,9 +23,20 @@
12
23
 
13
24
  - License info needs to be added to the gemspec [\#4](https://github.com/miroswan/vagrant_spec/issues/4)
14
25
 
26
+ **Merged pull requests:**
27
+
28
+ - Preparation for v0.0.4 [\#12](https://github.com/miroswan/vagrant_spec/pull/12) ([miroswan](https://github.com/miroswan))
29
+ - Updating the documentation [\#11](https://github.com/miroswan/vagrant_spec/pull/11) ([miroswan](https://github.com/miroswan))
30
+ - Adding version sub-command [\#10](https://github.com/miroswan/vagrant_spec/pull/10) ([miroswan](https://github.com/miroswan))
31
+
15
32
  ## [v0.0.3](https://github.com/miroswan/vagrant_spec/tree/v0.0.3) (2016-08-09)
16
33
  [Full Changelog](https://github.com/miroswan/vagrant_spec/compare/v0.0.2...v0.0.3)
17
34
 
35
+ **Merged pull requests:**
36
+
37
+ - Prepping for a v0.0.3 release [\#6](https://github.com/miroswan/vagrant_spec/pull/6) ([miroswan](https://github.com/miroswan))
38
+ - Feature/machine data [\#5](https://github.com/miroswan/vagrant_spec/pull/5) ([miroswan](https://github.com/miroswan))
39
+
18
40
  ## [v0.0.2](https://github.com/miroswan/vagrant_spec/tree/v0.0.2) (2016-08-06)
19
41
  [Full Changelog](https://github.com/miroswan/vagrant_spec/compare/v0.0.1...v0.0.2)
20
42
 
@@ -23,6 +45,10 @@
23
45
  - Help output for init needs to be updated [\#2](https://github.com/miroswan/vagrant_spec/issues/2)
24
46
  - Needs tests [\#1](https://github.com/miroswan/vagrant_spec/issues/1)
25
47
 
48
+ **Merged pull requests:**
49
+
50
+ - Updates [\#3](https://github.com/miroswan/vagrant_spec/pull/3) ([miroswan](https://github.com/miroswan))
51
+
26
52
  ## [v0.0.1](https://github.com/miroswan/vagrant_spec/tree/v0.0.1) (2016-08-06)
27
53
 
28
54
 
data/README.md CHANGED
@@ -92,9 +92,11 @@ your cluster of nodes.
92
92
 
93
93
  * version: Print the current version of vagrant_spec
94
94
 
95
- * init: This will generate your spec_helper.rb for serverspec testing and your
96
- ansible inventory file. You'll typically want to run this after a vagrant up,
97
- and before your deployment and testing tasks.
95
+ * init: This will generate your ansible inventory file if you've configured your
96
+ config.spec.ansible_inventory directive. Additionally, it'll generate your
97
+ .vagrantspec_machine_data file if set to enabled via
98
+ config.spec.generate_machine_data. You'll typically want to run this after a
99
+ vagrant up and before your deployment and testing tasks.
98
100
 
99
101
  * test: This will run the tests specified in your Vagrantfile. Tests are
100
102
  executed against each node in your fleet and the exit code is stored if an error
@@ -104,9 +106,9 @@ to the shell. Otherwise, it will return zero.
104
106
  ## Sample Output
105
107
 
106
108
  ```
107
- > bundle exec vagrant spec init
109
+ > vagrant spec init
108
110
 
109
- > bundle exec vagrant spec test
111
+ > vagrant spec test
110
112
 
111
113
  *******************************************************
112
114
  ***************** ServerSpec Test Run *****************
@@ -114,45 +116,22 @@ to the shell. Otherwise, it will return zero.
114
116
 
115
117
  [test_ansible]
116
118
 
117
- ssh
118
- ssh should be running
119
+ Test Hostname
120
+ hostname is test_ansible
119
121
 
120
- Finished in 0.46065 seconds (files took 1.68 seconds to load)
122
+ Finished in 0.43356 seconds (files took 1.61 seconds to load)
121
123
  1 example, 0 failures
122
124
 
123
125
  [test_pansible]
124
126
 
125
- Thing that fails
126
- dumb_service totally fails (FAILED - 1)
127
+ Test Hostname
128
+ hostname is test_pansible
127
129
 
128
- Failures:
129
-
130
- 1) Thing that fails dumb_service totally fails
131
- On host `127.0.0.1'
132
- Failure/Error: expect(service('dumb_service')).to be_running
133
- expected Service "dumb_service" to be running
134
- sudo -p 'Password: ' /bin/sh -c ps\ aux\ \|\ grep\ -w\ --\ dumb_service\ \|\ grep\ -qv\ grep
135
-
136
- # ./serverspec/fail_spec.rb:5:in `block (2 levels) in <top (required)>'
137
- # ./lib/vagrant_spec/test_plan.rb:62:in `execute_plan_tests'
138
- # ./lib/vagrant_spec/test_plan.rb:31:in `block (2 levels) in run'
139
- # ./lib/vagrant_spec/test_plan.rb:31:in `each'
140
- # ./lib/vagrant_spec/test_plan.rb:31:in `block in run'
141
- # ./lib/vagrant_spec/test_plan.rb:30:in `each'
142
- # ./lib/vagrant_spec/test_plan.rb:30:in `run'
143
- # ./lib/vagrant_spec/command/test.rb:18:in `execute'
144
- # ./lib/vagrant_spec/command/base.rb:61:in `parse_subcommand'
145
- # ./lib/vagrant_spec/command/base.rb:25:in `execute'
146
-
147
- Finished in 0.05726 seconds (files took 0.58135 seconds to load)
148
- 1 example, 1 failure
149
-
150
- Failed examples:
151
-
152
- rspec ./serverspec/fail_spec.rb:4 # Thing that fails dumb_service totally fails
130
+ Finished in 0.22762 seconds (files took 0.59837 seconds to load)
131
+ 1 example, 0 failures
153
132
 
154
133
  > echo $?
155
- 1
134
+ 0
156
135
  ```
157
136
 
158
137
  ## Testing Resources
data/Vagrantfile CHANGED
@@ -1,11 +1,12 @@
1
1
 
2
2
  Vagrant.configure(2) do |config|
3
+ config.vm.box = 'ubuntu/trusty64'
3
4
  config.vm.define 'test_ansible' do |b|
4
- b.vm.box = 'ubuntu/trusty64'
5
+ b.vm.hostname = 'ansible'
5
6
  end
6
7
 
7
8
  config.vm.define 'test_pansible' do |b|
8
- b.vm.box = 'ubuntu/trusty64'
9
+ b.vm.hostname = 'pansible'
9
10
  end
10
11
 
11
12
  # key: Ansible Group Name
@@ -17,11 +18,11 @@ Vagrant.configure(2) do |config|
17
18
  config.spec.test_plan = [
18
19
  {
19
20
  'nodes' => /test_ansi/,
20
- 'flags' => '--format documentation --color --pattern serverspec/ssh*'
21
+ 'flags' => '--format documentation --color --pattern serverspec/ansi*'
21
22
  },
22
23
  {
23
24
  'nodes' => /test_pansi/,
24
- 'flags' => '--format documentation --color --pattern serverspec/fail*'
25
+ 'flags' => '--format documentation --color --pattern serverspec/pansi*'
25
26
  }
26
27
  ]
27
28
  end
@@ -1,7 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  require 'vagrant_spec/ansible_inventory'
4
- require 'vagrant_spec/spec_helper'
5
4
  require 'vagrant_spec/machine_data'
6
5
  require 'vagrant_spec/config'
7
6
 
@@ -31,7 +30,6 @@ module VagrantSpec
31
30
 
32
31
  def execute
33
32
  return unless parse_opts
34
- VagrantSpec::SpecHelper.new(@env).generate
35
33
  unless @ansible_inventory == DEFAULTS['ansible_inventory']
36
34
  VagrantSpec::AnsibleInventory.new(@env).generate
37
35
  end
@@ -1,9 +1,5 @@
1
1
  The init subcommand initializes state-based configuration for vagrant_spec.
2
2
 
3
- It creates a spec_helper.rb file under the configured ServerSpec directory. This
4
- file is used to setup ServerSpec backend configuration and ease ServerSpec
5
- testing.
6
-
7
3
  If the config.spec.ansible_inventory configuration directive is used within the
8
4
  Vagrantfile, then init will generate a test inventory file
9
5
  vagrantspec_inventory. This file can be used for ansible orchestration against
@@ -1,6 +1,9 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  require 'rspec'
4
+ require 'serverspec'
5
+ require 'specinfra'
6
+ require 'specinfra/backend'
4
7
 
5
8
  require 'vagrant_spec/config'
6
9
  require 'vagrant_spec/machine_finder'
@@ -47,18 +50,37 @@ module VagrantSpec
47
50
  end
48
51
  end
49
52
 
53
+ # Close existing SSH
54
+ def close_ssh
55
+ if ::Specinfra::Backend::Ssh.instance.get_config(:ssh)
56
+ ::Specinfra::Backend::Ssh.instance.get_config(:ssh).close
57
+ ::Specinfra::Backend::Ssh.instance.set_config(:ssh, nil)
58
+ end
59
+ end
60
+
61
+ # Configures ServerSpec
62
+ #
63
+ # node [Vagrant::Machine]
64
+ def configure_serverspec(node)
65
+ set :backend, :ssh
66
+ host = node.ssh_info[:host].to_s
67
+ options = Net::SSH::Config.for(host)
68
+ options[:user] = node.ssh_info[:username].to_s
69
+ options[:keys] = node.ssh_info[:private_key_path][0].to_s
70
+ options[:port] = node.ssh_info[:port].to_s
71
+
72
+ set :host, host
73
+ set :ssh_options, options
74
+ end
75
+
50
76
  # Execute a test_suite and return the code
51
77
  #
52
78
  # node [Vagrant::Machine]
53
79
  # plan [Hash] item in the @config.spec.test_plan
54
- #
55
- # return [@ret_code]
56
80
  def execute_plan_tests(node, plan)
57
81
  @env.ui.info("[#{node.name}]")
58
- ENV['VAGRANT_HOST'] = node.ssh_info[:host].to_s
59
- ENV['VAGRANT_PORT'] = node.ssh_info[:port].to_s
60
- ENV['VAGRANT_KEY'] = node.ssh_info[:private_key_path][0].to_s
61
- ENV['VAGRANT_USER'] = node.ssh_info[:username].to_s
82
+ close_ssh
83
+ configure_serverspec(node)
62
84
  plan['flags'].prepend "-I #{@config.spec.directory} "
63
85
  ret_code = RSpec::Core::Runner.run(plan['flags'].split, $stderr, $stdout)
64
86
  RSpec.clear_examples
@@ -2,5 +2,5 @@
2
2
 
3
3
  # Requisite version info
4
4
  module VagrantSpec
5
- VERSION = '0.0.4'.freeze
5
+ VERSION = '0.0.5'.freeze
6
6
  end
@@ -19,5 +19,5 @@ rm -f ".vagrantspec_machine_data"
19
19
  bundle exec vagrant up
20
20
  bundle exec vagrant spec init
21
21
  ansible-playbook site.yml -i vagrantspec_inventory
22
- bundle exec vagrant spec test || true
22
+ bundle exec vagrant spec test
23
23
  bundle exec vagrant destroy -f
@@ -0,0 +1,6 @@
1
+
2
+ describe 'Test Hostname' do
3
+ it 'hostname is test_ansible' do
4
+ expect(command('printf "$(hostname)"').stdout).to eq('ansible')
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+
2
+ describe 'Test Hostname' do
3
+ it 'hostname is test_pansible' do
4
+ expect(command('printf "$(hostname)"').stdout).to eq('pansible')
5
+ end
6
+ end
@@ -21,6 +21,8 @@ require 'vagrant_spec'
21
21
  require 'unit/support/shared/base_context'
22
22
  require 'unit/support/shared/virtualbox_context'
23
23
 
24
+ require 'serverspec'
25
+
24
26
  # Build methods to retrieve plugins against VagrantSpec::Plugin.
25
27
  #
26
28
  # Example: get_commands(VagrantSpec::Plugin)
@@ -54,6 +56,9 @@ RSpec.shared_examples 'shared_mocks' do
54
56
  EOF
55
57
  end
56
58
 
59
+ # Silence ServerSpec
60
+ set :backend, :ssh
61
+
57
62
  let(:mock_vf_obj) { double(Vagrant::Vagrantfile) }
58
63
  let(:mock_ui) { double(Vagrant::UI) }
59
64
  let(:mock_config) { double(Vagrant::Config) }
@@ -7,10 +7,6 @@ describe VagrantSpec::Command::Init do
7
7
  include_context 'unit'
8
8
  include_examples 'shared_mocks'
9
9
 
10
- let(:mock_spec_helper) do
11
- double(VagrantSpec::SpecHelper)
12
- end
13
-
14
10
  let(:mock_ansible_inventory) do
15
11
  double(VagrantSpec::AnsibleInventory)
16
12
  end
@@ -32,10 +28,8 @@ describe VagrantSpec::Command::Init do
32
28
 
33
29
  def execute_proc
34
30
  proc do
35
- allow_any_instance_of(VagrantSpec::SpecHelper).to receive(:generate)
36
31
  allow_any_instance_of(VagrantSpec::AnsibleInventory).to receive(:generate)
37
32
  allow_any_instance_of(VagrantSpec::MachineData).to receive(:generate)
38
- allow(mock_spec_helper).to receive(:generate)
39
33
  allow(mock_ansible_inventory).to receive(:generate)
40
34
  allow(mock_machine_data).to receive(:generate)
41
35
  end
@@ -53,7 +47,6 @@ describe VagrantSpec::Command::Init do
53
47
  def execute_protection_proc
54
48
  proc do
55
49
  allow(subject).to receive(:parse_opts) { 'not_nil' }
56
- allow(VagrantSpec::SpecHelper).to receive(:new) { mock_spec_helper }
57
50
  allow(VagrantSpec::AnsibleInventory).to receive(:new) do
58
51
  mock_ansible_inventory
59
52
  end
@@ -66,8 +59,6 @@ describe VagrantSpec::Command::Init do
66
59
  it '#execute creates an instance of VagrantSpec::SpecHelper' do
67
60
  execute_protection_proc.call
68
61
  subject.ansible_inventory = {}
69
-
70
- expect(mock_spec_helper).to receive(:generate)
71
62
  expect(mock_ansible_inventory).to_not receive(:generate)
72
63
  subject.execute
73
64
  end
@@ -78,7 +69,6 @@ describe VagrantSpec::Command::Init do
78
69
  execute_protection_proc.call
79
70
  subject.ansible_inventory = { 'all' => /node/ }
80
71
 
81
- expect(mock_spec_helper).to receive(:generate)
82
72
  expect(mock_ansible_inventory).to receive(:generate)
83
73
  subject.execute
84
74
  end
@@ -38,6 +38,8 @@ describe VagrantSpec::TestPlan do
38
38
  }
39
39
  end
40
40
 
41
+ let(:mock_ssh_backend) { double(Specinfra::Backend::Ssh) }
42
+
41
43
  ##############################################################################
42
44
  # Stubs
43
45
 
@@ -47,6 +49,8 @@ describe VagrantSpec::TestPlan do
47
49
  allow_any_instance_of(VagrantSpec::MachineFinder)
48
50
  .to receive(:machine) { double(Vagrant::Machine) }
49
51
 
52
+ allow(::Specinfra::Backend::Ssh).to receive(:instance) { mock_ssh_backend }
53
+
50
54
  allow(RSpec::Core::Runner).to receive(:run) { 0 }
51
55
  allow(iso_env).to receive(:ui)
52
56
  allow(mock_node).to receive(:name)
@@ -59,9 +63,6 @@ describe VagrantSpec::TestPlan do
59
63
 
60
64
  subject { VagrantSpec::TestPlan.new(iso_env) }
61
65
 
62
- ##############################################################################
63
- # Testing #nodes
64
-
65
66
  context 'when passing a Regexp object' do
66
67
  it '#nodes calls match_nodes on a machine_finder instance' do
67
68
  expect(subject.m_finder).to receive(:match_nodes)
@@ -81,6 +82,17 @@ describe VagrantSpec::TestPlan do
81
82
  end
82
83
  end
83
84
 
85
+ context 'when ssh config is truthy' do
86
+ it '#close_ssh closes the pre-existing SSH connection' do
87
+ ssh_obj = double(Object.new)
88
+ allow(mock_ssh_backend).to receive(:get_config).with(:ssh) { ssh_obj }
89
+ allow(mock_ssh_backend).to receive(:set_config)
90
+ expect(ssh_obj).to receive(:close)
91
+ expect(mock_ssh_backend).to receive(:set_config)
92
+ subject.close_ssh
93
+ end
94
+ end
95
+
84
96
  ##############################################################################
85
97
  # Testing #execute_plan_tests
86
98
  #
@@ -88,8 +100,16 @@ describe VagrantSpec::TestPlan do
88
100
  # executes clear_examples. clear_examples modifies global state, so we must
89
101
  # contain it.
90
102
 
103
+ def execute_plan_tests_proc
104
+ proc do
105
+ allow(subject).to receive(:close_ssh)
106
+ allow(subject).to receive(:configure_serverspec)
107
+ end
108
+ end
109
+
91
110
  it '#execute_plan_tests runs the RSPec tests' do
92
111
  in_sub_process do
112
+ execute_plan_tests_proc.call
93
113
  expect(RSpec::Core::Runner).to receive(:run)
94
114
  subject.execute_plan_tests(mock_node, mock_plan[0])
95
115
  end
@@ -97,8 +117,16 @@ describe VagrantSpec::TestPlan do
97
117
 
98
118
  it '#execute adds the spec.directory to the load path' do
99
119
  in_sub_process do
120
+ execute_plan_tests_proc.call
100
121
  subject.execute_plan_tests(mock_node, mock_plan[0])
101
- expect(subject.test_plan[0]['flags']).to include('-I serverspec')
122
+ expect(subject.test_plan[0]['flags']).to match(/-I serverspec/)
123
+ end
124
+ end
125
+
126
+ it '#execute calls close_ssh and configure_serverspec' do
127
+ in_sub_process do
128
+ expect(subject).to receive(:close_ssh)
129
+ expect(subject).to receive(:configure_serverspec)
102
130
  end
103
131
  end
104
132
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant_spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Demitri
@@ -127,17 +127,15 @@ files:
127
127
  - lib/vagrant_spec/config/base.rb
128
128
  - lib/vagrant_spec/machine_data.rb
129
129
  - lib/vagrant_spec/machine_finder.rb
130
- - lib/vagrant_spec/spec_helper.rb
131
130
  - lib/vagrant_spec/templates/init_help
132
- - lib/vagrant_spec/templates/spec_helper.erb
133
131
  - lib/vagrant_spec/templates/test_help
134
132
  - lib/vagrant_spec/templates/vagrantspec_inventory.erb
135
133
  - lib/vagrant_spec/test_plan.rb
136
134
  - lib/vagrant_spec/utils.rb
137
135
  - lib/vagrant_spec/version.rb
138
136
  - scripts/poor_mans_smoke_test.sh
139
- - serverspec/fail_spec.rb
140
- - serverspec/ssh_spec.rb
137
+ - serverspec/ansible_spec.rb
138
+ - serverspec/pansible_spec.rb
141
139
  - site.yml
142
140
  - spec/unit/spec_helper.rb
143
141
  - spec/unit/vagrant_spec_spec.rb
@@ -150,7 +148,6 @@ files:
150
148
  - spec/unit/vagrant_spec_test/config_spec/base_spec.rb
151
149
  - spec/unit/vagrant_spec_test/machine_data_spec.rb
152
150
  - spec/unit/vagrant_spec_test/machine_finder_spec.rb
153
- - spec/unit/vagrant_spec_test/spec_helper_spec.rb
154
151
  - spec/unit/vagrant_spec_test/test_plan_spec.rb
155
152
  - spec/unit/vagrant_spec_test/utils_spec.rb
156
153
  - vagrant_spec.gemspec
@@ -190,6 +187,5 @@ test_files:
190
187
  - spec/unit/vagrant_spec_test/config_spec/base_spec.rb
191
188
  - spec/unit/vagrant_spec_test/machine_data_spec.rb
192
189
  - spec/unit/vagrant_spec_test/machine_finder_spec.rb
193
- - spec/unit/vagrant_spec_test/spec_helper_spec.rb
194
190
  - spec/unit/vagrant_spec_test/test_plan_spec.rb
195
191
  - spec/unit/vagrant_spec_test/utils_spec.rb
@@ -1,42 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'erb'
4
-
5
- require 'vagrant_spec/config'
6
- require 'vagrant_spec/utils'
7
-
8
- module VagrantSpec
9
- # Generates a spec_helper.rb for integration testing
10
- #
11
- # env [Vagrant::Environment]
12
- class SpecHelper
13
- include VagrantSpec::Utils
14
- def initialize(env)
15
- @env = env
16
- @directory = VagrantSpec::Config.load(env).spec.directory
17
- end
18
-
19
- # Generate the spec_helper.rb
20
- def generate
21
- create_directory
22
- return if File.exist? spec_helper_path
23
- sh = ERB.new(IO.read(spec_helper_template), 0, '<>').result binding
24
- IO.write(spec_helper_path, sh)
25
- end
26
-
27
- # return [String]
28
- def create_directory
29
- Dir.mkdir @directory unless Dir.exist? @directory
30
- end
31
-
32
- # return [String]
33
- def spec_helper_path
34
- File.join(@directory, 'spec_helper.rb')
35
- end
36
-
37
- # return [String]
38
- def spec_helper_template
39
- File.join(template_dir, 'spec_helper.erb')
40
- end
41
- end
42
- end
@@ -1,19 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'serverspec'
4
- require 'net/ssh'
5
- require 'rspec'
6
-
7
- ###################
8
- # Serverspec Config
9
-
10
- set :backend, :ssh
11
-
12
- host = ENV['VAGRANT_HOST']
13
- options = Net::SSH::Config.for(host)
14
- options[:user] = ENV['VAGRANT_USER']
15
- options[:keys] = ENV['VAGRANT_KEY']
16
- options[:port] = ENV['VAGRANT_PORT']
17
-
18
- set :host, host
19
- set :ssh_options, options
@@ -1,7 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe 'Thing that fails' do
4
- it 'dumb_service totally fails' do
5
- expect(service('dumb_service')).to be_running
6
- end
7
- end
@@ -1,10 +0,0 @@
1
-
2
- # encoding: UTF-8
3
-
4
- require 'spec_helper'
5
-
6
- describe 'ssh' do
7
- it 'ssh should be running' do
8
- expect(service('ssh')).to be_running
9
- end
10
- end
@@ -1,41 +0,0 @@
1
- # encoding: UTF-8
2
-
3
- require 'spec_helper'
4
- require 'vagrant_spec/spec_helper'
5
- require 'vagrant_spec/utils'
6
-
7
- describe VagrantSpec::SpecHelper do
8
- include_context 'unit'
9
- include_examples 'shared_mocks'
10
-
11
- subject { VagrantSpec::SpecHelper.new(iso_env) }
12
-
13
- context 'when @directory does not exist' do
14
- it '#create_directory creates the directory' do
15
- allow(Dir).to receive(:exist?) { false }
16
- allow(Dir).to receive(:mkdir)
17
- expect(Dir).to receive(:mkdir)
18
-
19
- subject.create_directory
20
- end
21
- end
22
-
23
- context 'when @directory does exist' do
24
- it '#create_directory does not create the directory' do
25
- allow(Dir).to receive(:exist?) { true }
26
- allow(Dir).to receive(:mkdir)
27
- expect(Dir).not_to receive(:mkdir)
28
-
29
- subject.create_directory
30
- end
31
- end
32
-
33
- it '#spec_helper_path returns serverspec/spec_helper.rb' do
34
- expect(subject.spec_helper_path).to eq('serverspec/spec_helper.rb')
35
- end
36
-
37
- it '#spec_helper_template includes vagrant_spec/templates/spec_helper.erb' do
38
- result = subject.spec_helper_template
39
- expect(result).to match(%r{vagrant_spec/templates/spec_helper.erb})
40
- end
41
- end