require_relative '../../lib/formatters/wrapper' require 'test/unit' class TestWrapper < Test::Unit::TestCase SCORE_ANSI = "début\e[0;35m\e[0;36mMarron\e[0mMoyen\e[0;35mBleu\e[0mFin\e[0;35m" SCORE_ANSI2 = "\e[0;35mMauve\e[0m" SQL_ANSI = "\e[0;35mScore Load (0.6ms)\e[0m \e[0;36mSELECT \"scores\".* FROM \"scores\" WHERE \"scores\".\"id\" = $1 LIMIT $2\e[0m [[\"id\", 2], [\"LIMIT\", 1]]" BEGINT = "my text is:\n" ENDOFT = "a final is:\n" def test_wrap_score assert_wrap("\ ********************\n\ ********************\n\ **********", ('*' * 50), 20) assert_wrap("\ > ******************\n\ > ******************\n\ > **************", ('*' * 50), 20, '> ') end def test_wrap_sql assert_wrap("\ \e[0;35mScore Load (0.6ms)\e[0m \e[0;36mS\e[0m\n\ \e[0;36mELECT \"scores\".* FRO\e[0m\n\ \e[0;36mM \"scores\" WHERE \"sc\e[0m\n\ \e[0;36mores\".\"id\" = $1 LIMI\e[0m\n\ \e[0;36mT $2\e[0m [[\"id\", 2], [\"L\n\ IMIT\", 1]]", "\ \e[0;35mScore Load (0.6ms)\e[0m \e[0;36mSELECT \"scores\".* FROM \"scores\" WHERE \"scores\".\"id\" = $1 LIMIT $2\e[0m [[\"id\", 2], [\"LIMIT\", 1]]", 20) end private def assert_wrap(expectation, text, length, prefix = '') assert_equal(expectation, prefix+Wrapper.wrap(text, prefix, length - prefix.length)) test_with_style(text, length, prefix) end def test_with_style(text, length, prefix = '') puts "#{BEGINT}#{prefix}#{text}\e[0m" puts "#{ENDOFT}#{prefix}#{Wrapper.wrap(text, prefix, length - prefix.length)}\e[0m" puts end end