spec/vmc/cli/space/rename_spec.rb in vmc-0.5.0.beta.7 vs spec/vmc/cli/space/rename_spec.rb in vmc-0.5.0.beta.10
- old
+ new
@@ -1,26 +1,21 @@
require 'spec_helper'
require "vmc/cli/space/rename"
describe VMC::Space::Rename do
- let(:global) { { :color => false, :quiet => true } }
- let(:inputs) { {} }
- let(:given) { {} }
let(:spaces) { fake_list(:space, 3) }
let(:organization) { fake(:organization, :spaces => spaces) }
let(:client) { fake_client(:current_organization => organization, :spaces => spaces) }
let(:new_name) { "some-new-name" }
before do
- any_instance_of(VMC::CLI) do |cli|
+ any_instance_of described_class do |cli|
stub(cli).client { client }
stub(cli).precondition { nil }
end
end
- subject { Mothership.new.invoke(:rename_space, inputs, given, global) }
-
describe 'metadata' do
let(:command) { Mothership.commands[:rename_space] }
describe 'command' do
subject { command }
@@ -43,34 +38,43 @@
context 'when there are no spaces' do
let(:spaces) { [] }
context 'and a space is given' do
- let(:given) { { :space => "some-invalid-space" } }
- it { expect { subject }.to raise_error(VMC::UserError, "Unknown space 'some-invalid-space'.") }
+ subject { vmc %W[rename-space --space some-invalid-space --no-force --no-quiet] }
+ it 'prints out an error message' do
+ subject
+ expect(stderr.string).to include "Unknown space 'some-invalid-space'."
+ end
end
context 'and a space is not given' do
- it { expect { subject }.to raise_error(VMC::UserError, "No spaces.") }
+ subject { vmc %W[rename-space --no-force] }
+ it 'prints out an error message' do
+ subject
+ expect(stderr.string).to include "No spaces."
+ end
end
end
context 'when there are spaces' do
let(:renamed_space) { spaces.first }
context 'when the defaults are used' do
+ subject { vmc %W[rename-space --no-force --no-quiet] }
+
it 'asks for the space and new name and renames' do
mock_ask("Rename which space?", anything) { renamed_space }
mock_ask("New name") { new_name }
mock(renamed_space).name=(new_name)
mock(renamed_space).update!
subject
end
end
context 'when no name is provided, but a space is' do
- let(:given) { { :space => renamed_space.name } }
+ subject { vmc %W[rename-space --space #{renamed_space.name} --no-force] }
it 'asks for the new name and renames' do
dont_allow_ask("Rename which space?", anything)
mock_ask("New name") { new_name }
mock(renamed_space).name=(new_name)
@@ -78,11 +82,11 @@
subject
end
end
context 'when a space is provided and a name' do
- let(:inputs) { { :space => renamed_space, :name => new_name } }
+ subject { vmc %W[rename-space --space #{renamed_space.name} --name #{new_name} --no-force] }
it 'renames the space' do
mock(renamed_space).update!
subject
end
@@ -90,16 +94,9 @@
it 'displays the progress' do
mock_with_progress("Renaming to #{new_name}")
mock(renamed_space).update!
subject
- end
-
- context 'and the name already exists' do
- it 'fails' do
- mock(renamed_space).update! { raise CFoundry::SpaceNameTaken.new nil, nil, "Taken", 404 }
- expect { subject }.to raise_error(CFoundry::SpaceNameTaken)
- end
end
end
end
end