Sha256: 97b56df720d980977f297f435708450aeee9acf100bf4483d1538a01a4589501

Contents?: true

Size: 1.75 KB

Versions: 18

Compression:

Stored size: 1.75 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'support/sharedcontext'

require 'vagrant-libvirt/action/clean_machine_folder'

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

  include_context 'unit'

  describe '#call' do
    before do
      FileUtils.touch(File.join(machine.data_dir, "box.meta"))
    end

    context 'with default options' do
      it 'should verbosely remove the folder' do
        expect(ui).to receive(:info).with('Deleting the machine folder')

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

        expect(File.exists?(machine.data_dir)).to eq(true)
        expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
      end
    end

    context 'when the data dir doesn\'t exist' do
      before do
        Dir.mktmpdir do |d|
          # returns a temporary directory that has been already deleted when running
          expect(machine).to receive(:data_dir).and_return(d.to_s).exactly(3).times
        end
      end

      it 'should remove the folder' do
        expect(ui).to receive(:info).with('Deleting the machine folder')

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

        expect(File.exists?(machine.data_dir)).to eq(true)
        expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
      end
    end

    context 'with quiet option enabled' do
      subject { described_class.new(app, env, {:quiet => true}) }

      it 'should quietly remove the folder' do
        expect(ui).to_not receive(:info).with('Deleting the machine folder')

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

        expect(File.exists?(machine.data_dir)).to eq(true)
        expect(Dir.entries(machine.data_dir)).to match_array([".", ".."])
      end
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
vagrant-libvirt-0.10.8 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.7 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.6 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.5 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.4 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.3 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.2 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.1 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.10.0 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.9.0 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.8.2 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.8.1 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.8.0 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.7.0 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.6.3 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.6.2 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.6.1 spec/unit/action/clean_machine_folder_spec.rb
vagrant-libvirt-0.6.0 spec/unit/action/clean_machine_folder_spec.rb