# -*- coding: utf-8 -*- require 'spec_helper' describe Magellan::Cli::Command do let(:command){ Magellan::Cli::Command.new } let(:string){ "string" } describe :login do describe :intaractive do before do $stdout = StringIO.new allow(Magellan::Cli::Http).to receive_message_chain(:new, :login!).and_return("OK") end it "nothing options" do allow($stdin).to receive(:gets).and_return(string).once allow($stdin).to receive(:noecho).and_return(string).once expect(command.login).to eq "OK" expect($stdout.string).to eq "email: password: \n" end it "only email" do allow($stdin).to receive(:noecho).and_return(string).twice expect(command.invoke(:login, [], {email: string})).to eq "OK" expect($stdout.string).to eq "password: \n" end it "only password" do allow($stdin).to receive(:gets).and_return(string).once expect(command.invoke(:login, [], {password: string})).to eq "OK" expect($stdout.string).to eq "email: " end end end end