From 1a8efc6384a6bffcce104e4ff3d936557eef084d Mon Sep 17 00:00:00 2001 From: Peter Souter Date: Wed, 25 Nov 2015 10:52:47 +0000 Subject: [PATCH] Adds new wait specific spec --- spec/cli/ssh_cli_spec.rb | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/spec/cli/ssh_cli_spec.rb b/spec/cli/ssh_cli_spec.rb index c741906..50e3f5b 100644 --- a/spec/cli/ssh_cli_spec.rb +++ b/spec/cli/ssh_cli_spec.rb @@ -16,6 +16,33 @@ @cli.ssh("example.com") end + it "wait's until droplet active if -w command is given" do + stub_request(:get, "https://api.digitalocean.com/v2/droplets?page=1&per_page=1"). + with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer foo', 'Content-Type'=>'application/json', 'User-Agent'=>'Faraday v0.9.2'}). + to_return(:status => 200, :body => "", :headers => {}) + + stub_request(:get, "https://api.digitalocean.com/v2/droplets/6918990?per_page=200"). + with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer foo', 'Content-Type'=>'application/json', 'User-Agent'=>'Faraday v0.9.2'}). + to_return(:status => 200, :body => fixture('show_droplet'), :headers => {}) + + stub_request(:get, "https://api.digitalocean.com/v2/droplets?page=1&per_page=200"). + to_return(:headers => {'Content-Type' => 'application/json'}, :status => 200, :body => fixture("show_droplets")) + allow(Kernel).to receive(:exec).with('ssh', anything(), anything(),anything(), anything(),anything(), anything(),anything(), anything(),anything(), anything(),anything(), anything(),anything()) + + @cli.options = @cli.options.merge(:wait => true) + + @cli.ssh("example.com") + + expect($stdout.string).to eq <<-eos +Droplet fuzzy name provided. Finding droplet ID...done\e[0m, 6918990 (example.com) +Executing SSH on Droplet (example.com)... +Wait flag given, waiting for droplet to become active +.done\e[0m (0s) +Attempting SSH: baz@104.236.32.182 +SShing with options: -o LogLevel=ERROR -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -i #{Dir.home}/.ssh/id_rsa2 -p 33 baz@104.236.32.182 + eos + end + it "does not allow ssh into a droplet that is inactive" do stub_request(:get, "https://api.digitalocean.com/v2/droplets?page=1&per_page=1"). with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=0.3', 'Authorization'=>'Bearer foo', 'Content-Type'=>'application/json', 'User-Agent'=>'Faraday v0.9.2'}).