require 'readline' require 'test_helper' require File.join(File.dirname(__FILE__), '..', 'lib/sifttter_redux/cli_message.rb') class CLIMessageTest < Test::Unit::TestCase def setup SifttterRedux::CLIMessage::deactivate_logging end def test_error_message assert_output('# test'.red + "\n") { SifttterRedux::CLIMessage::error('test') } end def test_info_message assert_output('# test'.blue + "\n") { SifttterRedux::CLIMessage::info('test') } end def test_info_block_single_line assert_output("# start".blue + "body\n" + 'end'.blue + "\n") do SifttterRedux::CLIMessage::info_block('start', 'end') { puts 'body' } end end def test_info_block_multiline assert_output("# start".blue + "\nbody\n" + '# end'.blue + "\n") do SifttterRedux::CLIMessage::info_block('start', 'end', true) { puts 'body' } end end def test_info_block_no_block assert_raise ArgumentError do SifttterRedux::CLIMessage::info_block('start', 'end', true) end end def test_section_message assert_output('---> test'.purple + "\n") { SifttterRedux::CLIMessage::section('test') } end def test_section_block_single_line assert_output("---> section".purple + "\nbody\n") do SifttterRedux::CLIMessage::section_block('section', true) { puts 'body' } end end def test_success_message assert_output('# test'.green + "\n") { SifttterRedux::CLIMessage::success('test') } end def test_warning_message assert_output('# test'.yellow + "\n") { SifttterRedux::CLIMessage::warning('test') } end # def test_prompt # with_stdin do |answer| # answer.puts 'default' # assert_equal(SifttterRedux::CLIMessage::prompt('Hit enter to give the default response', 'default'), 'default') # end # end # # def with_stdin # stdin = $stdin # remember $stdin # $stdin, write = IO.pipe # create pipe assigning its "read end" to $stdin # yield write # pass pipe's "write end" to block # ensure # write.close # close pipe # $stdin = stdin # restore $stdin # end end