vagrant/test/unit/vagrant/config_test.rb

92 lines
2.2 KiB
Ruby

require File.expand_path("../../base", __FILE__)
describe Vagrant::Config do
it "should not execute the proc on configuration" do
described_class.run do
raise Exception, "Failure."
end
end
it "should capture calls to `Vagrant.configure`" do
receiver = double()
procs = described_class.capture_configures do
Vagrant.configure("1") do
receiver.one
end
Vagrant.configure("2") do
receiver.two
end
end
expect(procs).to be_kind_of(Array)
expect(procs.length).to eq(2)
expect(procs[0][0]).to eq("1")
expect(procs[1][0]).to eq("2")
# Verify the proper procs were captured
expect(receiver).to receive(:one).once.ordered
expect(receiver).to receive(:two).once.ordered
procs[0][1].call
procs[1][1].call
end
it "should work with integer configurations "do
receiver = double()
procs = described_class.capture_configures do
Vagrant.configure(1) do
receiver.one
end
Vagrant.configure(2) do
receiver.two
end
end
expect(procs).to be_kind_of(Array)
expect(procs.length).to eq(2)
expect(procs[0][0]).to eq("1")
expect(procs[1][0]).to eq("2")
# Verify the proper procs were captured
expect(receiver).to receive(:one).once.ordered
expect(receiver).to receive(:two).once.ordered
procs[0][1].call
procs[1][1].call
end
it "should capture configuration procs" do
receiver = double()
procs = described_class.capture_configures do
described_class.run do
receiver.hello!
end
end
# Verify the structure of the result
expect(procs).to be_kind_of(Array)
expect(procs.length).to eq(1)
# Verify that the proper proc was captured
expect(receiver).to receive(:hello!).once
expect(procs[0][0]).to eq("1")
procs[0][1].call
end
it "should capture the proper version" do
procs = described_class.capture_configures do
described_class.run("1") {}
described_class.run("2") {}
end
# Verify the structure of the result
expect(procs).to be_kind_of(Array)
expect(procs.length).to eq(2)
expect(procs[0][0]).to eq("1")
expect(procs[1][0]).to eq("2")
end
end