2018-02-20 04:33:37 +00:00
|
|
|
require_relative "../../../../base"
|
|
|
|
|
|
|
|
require Vagrant.source_root.join("plugins/provisioners/chef/provisioner/chef_solo")
|
|
|
|
|
|
|
|
describe VagrantPlugins::Chef::Provisioner::ChefSolo 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(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
|
|
|
|
let(:config) { double("config") }
|
|
|
|
|
|
|
|
subject { described_class.new(machine, config) }
|
|
|
|
|
|
|
|
before do
|
|
|
|
allow(config).to receive(:node_name)
|
|
|
|
allow(config).to receive(:node_name=)
|
|
|
|
end
|
|
|
|
|
|
|
|
describe "#expanded_folders" do
|
2018-05-03 16:25:42 +00:00
|
|
|
before { allow(subject).to receive(:windows?).and_return(true) }
|
|
|
|
|
2018-02-20 04:33:37 +00:00
|
|
|
it "handles the default Windows provisioning path" do
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(nil)
|
|
|
|
remote_path = subject.expanded_folders([[:vm, "cookbooks-1"]])[0][2]
|
|
|
|
expect(remote_path).to eq("/vagrant-chef/cookbooks-1")
|
|
|
|
end
|
2018-05-03 16:25:42 +00:00
|
|
|
|
|
|
|
it "removes drive letter prefix from path" do
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(nil)
|
|
|
|
expect(File).to receive(:expand_path).and_return("C:/vagrant-chef/cookbooks-1")
|
|
|
|
result = subject.expanded_folders([[:vm, "cookbooks-1"]])
|
|
|
|
remote_path = result[0][2]
|
|
|
|
expect(remote_path).to eq("/vagrant-chef/cookbooks-1")
|
|
|
|
end
|
|
|
|
|
2018-02-20 04:33:37 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
describe "#expanded_folders" do
|
|
|
|
it "expands Windows absolute provisioning path with relative path" do
|
|
|
|
provisioning_path = "C:/vagrant-chef-1"
|
|
|
|
unexpanded_path = "cookbooks-1"
|
|
|
|
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
|
|
|
|
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
|
|
|
|
|
|
|
|
expect(remote_path).to eq("/vagrant-chef-1/cookbooks-1")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "expands Windows absolute provisioning path with absolute path" do
|
|
|
|
provisioning_path = "C:/vagrant-chef-1"
|
|
|
|
unexpanded_path = "/cookbooks-1"
|
|
|
|
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
|
|
|
|
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
|
|
|
|
|
|
|
|
expect(remote_path).to eq("/cookbooks-1")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "expands Windows absolute provisioning path with Windows absolute path" do
|
|
|
|
provisioning_path = "C:/vagrant-chef-1"
|
|
|
|
unexpanded_path = "D:/cookbooks-1"
|
|
|
|
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
|
|
|
|
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
|
|
|
|
|
|
|
|
expect(remote_path).to eq("/cookbooks-1")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "expands absolute provisioning path with Windows absolute path" do
|
|
|
|
provisioning_path = "/vagrant-chef-1"
|
|
|
|
unexpanded_path = "D:/cookbooks-1"
|
|
|
|
|
|
|
|
allow(config).to receive(:provisioning_path).and_return(provisioning_path)
|
|
|
|
remote_path = subject.expanded_folders([[:vm, unexpanded_path]])[0][2]
|
|
|
|
|
|
|
|
expect(remote_path).to eq("/cookbooks-1")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|