Add test coverage on globalize and localize within plugin manager
This commit is contained in:
parent
c5a6790192
commit
3e22764ac8
|
@ -26,6 +26,91 @@ describe Vagrant::Plugin::Manager do
|
||||||
|
|
||||||
subject { described_class.new(path) }
|
subject { described_class.new(path) }
|
||||||
|
|
||||||
|
describe "#globalize!" do
|
||||||
|
let(:plugins) { double("plugins") }
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(subject).to receive(:bundler_init)
|
||||||
|
allow(subject).to receive(:installed_plugins).and_return(plugins)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should init bundler with installed plugins" do
|
||||||
|
expect(subject).to receive(:bundler_init).with(plugins)
|
||||||
|
subject.globalize!
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should return installed plugins" do
|
||||||
|
expect(subject.globalize!).to eq(plugins)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#localize!" do
|
||||||
|
let(:env) { double("env", local_data_path: local_data_path) }
|
||||||
|
let(:local_data_path) { double("local_data_path") }
|
||||||
|
let(:plugins) { double("plugins") }
|
||||||
|
let(:state_file) { double("state_file", installed_plugins: plugins) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(Vagrant::Plugin::StateFile).to receive(:new).and_return(state_file)
|
||||||
|
allow(bundler).to receive(:environment_path=)
|
||||||
|
allow(local_data_path).to receive(:join).and_return(local_data_path)
|
||||||
|
allow(subject).to receive(:bundler_init)
|
||||||
|
end
|
||||||
|
|
||||||
|
context "without local data path defined" do
|
||||||
|
let(:local_data_path) { nil }
|
||||||
|
|
||||||
|
it "should not do any initialization" do
|
||||||
|
expect(subject).not_to receive(:bundler_init)
|
||||||
|
subject.localize!(env)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should return nil" do
|
||||||
|
expect(subject.localize!(env)).to be_nil
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should run bundler initialization" do
|
||||||
|
expect(subject).to receive(:bundler_init).with(plugins)
|
||||||
|
subject.localize!(env)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should return plugins" do
|
||||||
|
expect(subject.localize!(env)).to eq(plugins)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
describe "#bundler_init" do
|
||||||
|
let(:plugins) { {"plugin_name" => {}} }
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(Vagrant).to receive(:plugins_init?).and_return(true)
|
||||||
|
allow(bundler).to receive(:init!)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should init the bundler instance with plugins" do
|
||||||
|
expect(bundler).to receive(:init!).with(plugins)
|
||||||
|
subject.bundler_init(plugins)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should return nil" do
|
||||||
|
expect(subject.bundler_init(plugins)).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with plugin init disabled" do
|
||||||
|
before { expect(Vagrant).to receive(:plugins_init?).and_return(false) }
|
||||||
|
|
||||||
|
it "should return nil" do
|
||||||
|
expect(subject.bundler_init(plugins)).to be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it "should not init the bundler instance" do
|
||||||
|
expect(bundler).not_to receive(:init!).with(plugins)
|
||||||
|
subject.bundler_init(plugins)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe "#install_plugin" do
|
describe "#install_plugin" do
|
||||||
it "installs the plugin and adds it to the state file" do
|
it "installs the plugin and adds it to the state file" do
|
||||||
specs = Array.new(5) { Gem::Specification.new }
|
specs = Array.new(5) { Gem::Specification.new }
|
||||||
|
|
Loading…
Reference in New Issue