test/cli_message_test.rb in sifttter-redux-0.4.0 vs test/cli_message_test.rb in sifttter-redux-0.4.1

- old
+ new

@@ -4,52 +4,64 @@ include Methadone::CLILogging class CLIMessageTest < Test::Unit::TestCase def test_error_message - assert_output('---> ERROR: test'.red + "\n") { SifttterRedux::CLIMessage.error('test', false) } + assert_output('---> ERROR: test'.red + "\n") { SifttterRedux::CLIMessage::error('test', false) } end def test_info_message - assert_output('---> INFO: test'.blue + "\n") { SifttterRedux::CLIMessage.info('test', false) } + assert_output('---> INFO: test'.blue + "\n") { SifttterRedux::CLIMessage::info('test', false) } end def test_info_block_single_line assert_output("---> INFO: start".blue + "body\n" + 'end'.blue + "\n") do - SifttterRedux::CLIMessage.info_block('start', 'end', false, false) { puts 'body' } + SifttterRedux::CLIMessage::info_block('start', 'end', false, false) { puts 'body' } end end def test_info_block_multiline assert_output("---> INFO: start".blue + "\nbody\n" + '---> INFO: end'.blue + "\n") do - SifttterRedux::CLIMessage.info_block('start', 'end', true, false) { puts 'body' } + SifttterRedux::CLIMessage::info_block('start', 'end', true, false) { puts 'body' } end end def test_info_block_no_block assert_raise ArgumentError do - SifttterRedux::CLIMessage.info_block('start', 'end', true, false) + SifttterRedux::CLIMessage::info_block('start', 'end', true, false) end end - # def test_prompt - # assert_equal(SifttterRedux::CLIMessage.prompt('Pick the default option', 'default'), 'default') - # end - def test_section_message - assert_output('#### test'.purple + "\n") { SifttterRedux::CLIMessage.section('test', false) } + assert_output('#### test'.purple + "\n") { SifttterRedux::CLIMessage::section('test', false) } end def test_section_block_single_line assert_output("#### section".purple + "\nbody\n") do - SifttterRedux::CLIMessage.section_block('section', true, false) { puts 'body' } + SifttterRedux::CLIMessage::section_block('section', true, false) { puts 'body' } end end def test_success_message - assert_output('---> SUCCESS: test'.green + "\n") { SifttterRedux::CLIMessage.success('test', false) } + assert_output('---> SUCCESS: test'.green + "\n") { SifttterRedux::CLIMessage::success('test', false) } end def test_warning_message - assert_output('---> WARNING: test'.yellow + "\n") { SifttterRedux::CLIMessage.warning('test', false) } + assert_output('---> WARNING: test'.yellow + "\n") { SifttterRedux::CLIMessage::warning('test', false) } + 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