sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 5fdcfa1bd6520c72b7a53d2b425a221f9f8ff268
parent 4a77a4741ea907b193b04fd52da2715ebfd0ceb8
Author: Dan Callaghan <djc@djc.id.au>
Date:   Mon,  9 May 2022 21:23:06 +1000

tests: capture expected warning messages

Diffstat:
M test/test_header_parsing.rb | 8 ++++++++
M test/test_messages_dir.rb | 10 ++++++++++
2 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/test/test_header_parsing.rb b/test/test_header_parsing.rb
@@ -11,9 +11,15 @@ class TestMBoxParsing < Minitest::Test
   def setup
     @path = Dir.mktmpdir
     @mbox = File.join(@path, 'test_mbox')
+    @log = StringIO.new
+    Redwood::Logger.add_sink @log
+    Redwood::Logger.remove_sink $stderr
   end
 
   def teardown
+    Redwood::Logger.clear!
+    Redwood::Logger.remove_sink @log
+    Redwood::Logger.add_sink $stderr
     FileUtils.rm_r @path
   end
 
@@ -133,6 +139,8 @@ EOS
     assert_equal 61, offset
     offset = l.next_offset 61
     assert_nil offset
+    assert_match(/WARNING: found invalid date in potential mbox split line, not splitting/,
+                 @log.string)
   end
 
   def test_more_from_line_splitting
diff --git a/test/test_messages_dir.rb b/test/test_messages_dir.rb
@@ -13,9 +13,15 @@ class TestMessagesDir < ::Minitest::Test
   def setup
     @path = Dir.mktmpdir
     Redwood::HookManager.init File.join(@path, 'hooks')
+    @log = StringIO.new
+    Redwood::Logger.add_sink @log
+    Redwood::Logger.remove_sink $stderr
   end
 
   def teardown
+    Redwood::Logger.clear!
+    Redwood::Logger.remove_sink @log
+    Redwood::Logger.add_sink $stderr
     Redwood::HookManager.deinstantiate!
     FileUtils.rm_r @path
   end
@@ -46,6 +52,8 @@ class TestMessagesDir < ::Minitest::Test
 
     # lines should contain an error message
     assert (lines.join.include? "An error occurred while loading this message."), "This message should not load successfully"
+
+    assert_match(/WARNING: problem reading message/, @log.string)
   end
 
   def test_bad_content_transfer_encoding
@@ -74,6 +82,8 @@ class TestMessagesDir < ::Minitest::Test
 
     # lines should contain an error message
     assert (lines.join.include? "An error occurred while loading this message."), "This message should not load successfully"
+
+    assert_match(/WARNING: problem reading message/, @log.string)
   end
 
   def test_missing_line