Sha256: d6ab049d5de9f881fc2215157e948fb7e41c1f332af45b427f97a44018cad3d8

Contents?: true

Size: 1.78 KB

Versions: 13

Compression:

Stored size: 1.78 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'support/sharedcontext'

require 'vagrant-libvirt/action/prepare_nfs_settings'


describe VagrantPlugins::ProviderLibvirt::Action::PrepareNFSSettings do
  subject { described_class.new(app, env) }

  include_context 'unit'

  describe '#call' do
    before do
      # avoid requiring nfsd installed to run tests
      allow(machine.env.host).to receive(:capability?).with(:nfs_installed).and_return(true)
      allow(machine.env.host).to receive(:capability).with(:nfs_installed).and_return(true)
    end

    context 'when enabled' do
      let(:vagrantfile) do
        <<-EOF
        Vagrant.configure('2') do |config|
          config.vm.box = "vagrant-libvirt/test"
          config.vm.define :test
          config.vm.synced_folder ".", "/vagrant", type: "nfs"
          config.vm.provider :libvirt do |libvirt|
            #{vagrantfile_providerconfig}
          end
        end
        EOF
      end
      let(:socket) { double('socket') }
      let(:udp_socket) { double('udp_socket') }

      before do
        allow(::TCPSocket).to receive(:new).and_return(socket)
        allow(socket).to receive(:close)

        allow(::UDPSocket).to receive(:open).and_return(udp_socket)
        allow(udp_socket).to receive(:connect)
      end

      it 'should retrieve the guest IP address' do
        times_called = 0
        expect(::TCPSocket).to receive(:new) do
          # force reaching later code
          times_called += 1
          times_called < 2 ? raise("StandardError") : socket
        end
        expect(machine).to receive(:ssh_info).and_return({:host => '192.168.1.2'})
        expect(communicator).to receive(:execute).and_yield(:stdout, "192.168.1.2\n192.168.2.2")

        expect(subject.call(env)).to be_nil
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
vagrant-libvirt-0.10.8 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.7 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.6 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.5 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.4 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.3 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.2 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.1 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.10.0 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.9.0 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.8.2 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.8.1 spec/unit/action/prepare_nfs_settings_spec.rb
vagrant-libvirt-0.8.0 spec/unit/action/prepare_nfs_settings_spec.rb