From 3d089a62d12b470c38666d4e161973af7be082f8 Mon Sep 17 00:00:00 2001 From: Hasyimi Bahrudin Date: Tue, 7 Feb 2017 14:59:20 +0800 Subject: [PATCH] Add unit test for validate command --- .../plugins/commands/validate/command_test.rb | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 test/unit/plugins/commands/validate/command_test.rb diff --git a/test/unit/plugins/commands/validate/command_test.rb b/test/unit/plugins/commands/validate/command_test.rb new file mode 100644 index 000000000..79a5463d3 --- /dev/null +++ b/test/unit/plugins/commands/validate/command_test.rb @@ -0,0 +1,52 @@ +require_relative "../../../base" +require_relative "../../../../../plugins/commands/validate/command" + +describe VagrantPlugins::CommandValidate::Command do + include_context "unit" + include_context "command plugin helpers" + + let(:iso_env) do + isolated_environment + end + + let(:env) do + iso_env.create_vagrant_env + end + + let(:argv) { [] } + + before(:all) do + I18n.load_path << Vagrant.source_root.join("plugins/commands/port/locales/en.yml") + I18n.reload! + end + + subject { described_class.new(argv, env) } + + describe "#execute" do + it "validates correct Vagrantfile" do + iso_env.vagrantfile(<<-EOH) + Vagrant.configure("2") do |config| + config.vm.box = "hashicorp/precise64" + end + EOH + + expect(env.ui).to receive(:info).with { |message, _| + expect(message).to include("Vagrantfile validated successfully.") + } + + expect(subject.execute).to eq(0) + end + + it "validates the configuration" do + iso_env.vagrantfile <<-EOH + Vagrant.configure("2") do |config| + config.vm.bix = "hashicorp/precise64" + end + EOH + + expect { subject.execute }.to raise_error(Vagrant::Errors::ConfigInvalid) { |err| + expect(err.message).to include("The following settings shouldn't exist: bix") + } + end + end +end