diff --git a/lib/vagrant_spec/command/init.rb b/lib/vagrant_spec/command/init.rb index bae11df..9eac8b2 100644 --- a/lib/vagrant_spec/command/init.rb +++ b/lib/vagrant_spec/command/init.rb @@ -1,5 +1,7 @@ # encoding: UTF-8 +require 'fileutils' + require 'vagrant_spec/ansible_inventory' require 'vagrant_spec/machine_data' require 'vagrant_spec/config' @@ -30,6 +32,7 @@ def initialize(argv, env) def execute return unless parse_opts + FileUtils.mkdir @directory unless Dir.exist? @directory unless @ansible_inventory == DEFAULTS['ansible_inventory'] VagrantSpec::AnsibleInventory.new(@env).generate end diff --git a/scripts/poor_mans_smoke_test.sh b/scripts/poor_mans_smoke_test.sh index a57d9a6..2463d2e 100755 --- a/scripts/poor_mans_smoke_test.sh +++ b/scripts/poor_mans_smoke_test.sh @@ -16,6 +16,7 @@ bundle exec vagrant spec test -h bundle exec vagrant spec no_command -h rm -f "serverspec/spec_helper.rb" rm -f ".vagrantspec_machine_data" +rm -f "vagrantspec_inventory" bundle exec vagrant up bundle exec vagrant spec init ansible-playbook site.yml -i vagrantspec_inventory diff --git a/spec/unit/vagrant_spec_test/command_spec/init_spec.rb b/spec/unit/vagrant_spec_test/command_spec/init_spec.rb index d589d55..b1d9fab 100644 --- a/spec/unit/vagrant_spec_test/command_spec/init_spec.rb +++ b/spec/unit/vagrant_spec_test/command_spec/init_spec.rb @@ -32,6 +32,8 @@ def execute_proc allow_any_instance_of(VagrantSpec::MachineData).to receive(:generate) allow(mock_ansible_inventory).to receive(:generate) allow(mock_machine_data).to receive(:generate) + allow(Dir).to receive(:exist?) { false } + allow(FileUtils).to receive(:mkdir) end end @@ -55,6 +57,14 @@ def execute_protection_proc end end + context 'when the @directory does not exist' do + it '#execute creates the @directory' do + execute_protection_proc.call + expect(FileUtils).to receive(:mkdir).with(subject.directory) + subject.execute + end + end + context 'and when @ansible_inventory eq empty hash,' do it '#execute creates an instance of VagrantSpec::SpecHelper' do execute_protection_proc.call