2014-01-10 23:41:57 +00:00
|
|
|
require_relative "../../../base"
|
|
|
|
|
|
|
|
require Vagrant.source_root.join("plugins/synced_folders/nfs/action_cleanup")
|
|
|
|
|
|
|
|
describe VagrantPlugins::SyncedFolderNFS::ActionCleanup do
|
|
|
|
include_context "unit"
|
|
|
|
|
|
|
|
let(:iso_env) do
|
|
|
|
# We have to create a Vagrantfile so there is a root path
|
|
|
|
env = isolated_environment
|
|
|
|
env.vagrantfile("")
|
|
|
|
env.create_vagrant_env
|
|
|
|
end
|
|
|
|
|
|
|
|
let(:host) { double("host") }
|
2014-01-10 23:48:42 +00:00
|
|
|
let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
|
2014-01-10 23:41:57 +00:00
|
|
|
|
|
|
|
let(:app) { lambda {} }
|
|
|
|
let(:env) { {
|
|
|
|
machine: machine,
|
|
|
|
} }
|
|
|
|
|
|
|
|
subject { described_class.new(app, env) }
|
|
|
|
|
|
|
|
before do
|
2017-08-04 17:10:58 +00:00
|
|
|
allow(machine.env).to receive(:host).and_return(host)
|
2014-01-10 23:41:57 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
it "does nothing if there are no valid IDs" do
|
2014-03-14 15:02:07 +00:00
|
|
|
expect(app).to receive(:call).with(env)
|
2014-01-10 23:41:57 +00:00
|
|
|
subject.call(env)
|
|
|
|
end
|
|
|
|
|
2014-01-16 04:28:27 +00:00
|
|
|
it "does nothing if the host doesn't support pruning NFS" do
|
2014-03-14 15:02:07 +00:00
|
|
|
allow(host).to receive(:capability?).with(:nfs_prune).and_return(false)
|
|
|
|
expect(host).to receive(:capability).never
|
|
|
|
expect(app).to receive(:call).with(env)
|
2014-01-16 04:28:27 +00:00
|
|
|
|
|
|
|
subject.call(env)
|
|
|
|
end
|
|
|
|
|
2014-01-10 23:41:57 +00:00
|
|
|
it "prunes the NFS entries if valid IDs are given" do
|
|
|
|
env[:nfs_valid_ids] = [1,2,3]
|
|
|
|
|
2014-03-14 15:02:07 +00:00
|
|
|
allow(host).to receive(:capability?).with(:nfs_prune).and_return(true)
|
|
|
|
expect(host).to receive(:capability).with(:nfs_prune, machine.ui, [1,2,3]).ordered
|
|
|
|
expect(app).to receive(:call).with(env).ordered
|
2014-01-10 23:41:57 +00:00
|
|
|
|
|
|
|
subject.call(env)
|
|
|
|
end
|
|
|
|
end
|