spec/unit/vm_spec.rb in vagrant-skytap-0.2.4 vs spec/unit/vm_spec.rb in vagrant-skytap-0.2.5
- old
+ new
@@ -21,46 +21,39 @@
# DEALINGS IN THE SOFTWARE.
require_relative 'base'
describe VagrantPlugins::Skytap::API::Vm do
- include_context "unit"
include_context "rest_api"
let(:json_path) { File.join(File.expand_path('..', __FILE__), 'support', 'api_responses') }
let(:vm1_attrs) { read_json(json_path, 'vm1.json') }
let(:vm2_attrs) { vm1_attrs.merge("id" => "6981851", "name" => "VM2") }
let(:network1_attrs) { read_json(json_path, 'network1.json') }
let(:empty_environment_attrs) { read_json(json_path, 'empty_environment.json') }
- let(:iso_env) do
- # We have to create a Vagrantfile so there is a root path
- env = isolated_environment
- env.vagrantfile("")
- env.create_vagrant_env
+ let(:provider_config) do
+ double(:provider_config, vm_url: "/vms/1", username: "jsmith", api_token: "123123", base_url: base_url)
end
- let(:machine) { iso_env.machine(iso_env.machine_names[0], :dummy) }
- let(:env) {{ machine: machine, api_client: api_client }}
+ let(:api_client) { API::Client.new(provider_config) }
+ let(:machine) { double(:machine, name: "vm1", id: nil, :id= => nil, provider_config: provider_config) }
+ let(:env) { { machine: machine, api_client: api_client } }
+ let(:instance) { described_class.new(attrs, env) }
let(:environment) do
env_attrs = empty_environment_attrs
VagrantPlugins::Skytap::API::Environment.new(env_attrs, env)
end
let(:attrs) { vm1_attrs }
let(:instance) { described_class.new(attrs, environment, env) }
- let(:api_client) do
- # By default, all GET requests will return VM1
- double('api_client',
- get: double('resp', body: JSON.dump(attrs))
- )
- end
-
# Ensure tests are not affected by Skytap credential environment variables
before :each do
ENV.stub(:[] => nil)
+ stub_request(:get, /.*/).to_return(body: '{}', status: 200)
+ stub_request(:get, %r{/vms/\d+}).to_return(body: JSON.dump(attrs), status: 200)
end
describe "reload" do
subject do
new_attrs = attrs.merge('name' => 'VM1, renamed')