vaguerent/test/unit/vagrant/cli_test.rb
Fabio Rehm 54656151cf Convert specs to RSpec 2.14.8 syntax with Transpec
This conversion is done by Transpec 1.10.2 with the following command:
    transpec test/unit/

* 507 conversions
    from: obj.should
      to: expect(obj).to

* 394 conversions
    from: == expected
      to: eq(expected)

* 260 conversions
    from: obj.should_receive(:message)
      to: expect(obj).to receive(:message)

* 85 conversions
    from: obj.stub(:message)
      to: allow(obj).to receive(:message)

* 25 conversions
    from: its(:attr) { }
      to: describe '#attr' do subject { super().attr }; it { } end

* 19 conversions
    from: obj.should_not
      to: expect(obj).not_to

* 7 conversions
    from: obj.should_not_receive(:message)
      to: expect(obj).not_to receive(:message)

* 3 conversions
    from: Klass.any_instance.should_receive(:message)
      to: expect_any_instance_of(Klass).to receive(:message)
2014-03-14 12:02:07 -03:00

58 lines
1.6 KiB
Ruby

require_relative "../base"
require "vagrant/cli"
describe Vagrant::CLI do
include_context "unit"
include_context "command plugin helpers"
let(:commands) { {} }
let(:iso_env) { isolated_environment }
let(:env) { iso_env.create_vagrant_env }
before do
Vagrant.plugin("2").manager.stub(commands: commands)
end
describe "#execute" do
it "invokes help and exits with 1 if invalid command" do
subject = described_class.new(["i-dont-exist"], env)
expect(subject).to receive(:help).once
expect(subject.execute).to eql(1)
end
it "invokes command and returns its exit status if the command is valid" do
commands[:destroy] = [command_lambda("destroy", 42), {}]
subject = described_class.new(["destroy"], env)
expect(subject).not_to receive(:help)
expect(subject.execute).to eql(42)
end
it "returns exit code 1 if interrupted" do
commands[:destroy] = [command_lambda("destroy", 42, exception: Interrupt), {}]
subject = described_class.new(["destroy"], env)
expect(subject.execute).to eql(1)
end
end
describe "#help" do
subject { described_class.new([], env) }
it "includes all primary subcommands" do
commands[:foo] = [command_lambda("foo", 0), { primary: true }]
commands[:bar] = [command_lambda("bar", 0), { primary: true }]
commands[:baz] = [command_lambda("baz", 0), { primary: false }]
expect(env.ui).to receive(:info).with { |message, opts|
expect(message).to include("foo")
expect(message).to include("bar")
expect(message.include?("baz")).to be_false
}
subject.help
end
end
end