summaryrefslogtreecommitdiff
path: root/test/rubygems/test_gem_commands_signout_command.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/rubygems/test_gem_commands_signout_command.rb')
-rw-r--r--test/rubygems/test_gem_commands_signout_command.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/rubygems/test_gem_commands_signout_command.rb b/test/rubygems/test_gem_commands_signout_command.rb
new file mode 100644
index 0000000000..814b55cf4f
--- /dev/null
+++ b/test/rubygems/test_gem_commands_signout_command.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+
+require 'rubygems/test_case'
+require 'rubygems/commands/signout_command'
+require 'rubygems/installer'
+
+class TestGemCommandsSignoutCommand < Gem::TestCase
+
+ def setup
+ super
+ @cmd = Gem::Commands::SignoutCommand.new
+ end
+
+ def teardown
+ super
+ File.delete Gem.configuration.credentials_path if File.exist?(Gem.configuration.credentials_path)
+ end
+
+ def test_execute_when_user_is_signed_in
+ FileUtils.mkdir_p File.dirname(Gem.configuration.credentials_path)
+ FileUtils::touch Gem.configuration.credentials_path
+
+ @sign_out_ui = Gem::MockGemUi.new
+ use_ui(@sign_out_ui) { @cmd.execute }
+
+ assert_match %r{You have successfully signed out}, @sign_out_ui.output
+ assert_equal false, File.exist?(Gem.configuration.credentials_path)
+ end
+
+ def test_execute_when_not_signed_in # i.e. no credential file created
+ @sign_out_ui = Gem::MockGemUi.new
+ use_ui(@sign_out_ui) { @cmd.execute }
+
+ assert_match %r{You are not currently signed in}, @sign_out_ui.error
+ end
+
+end