commit a2bd945dc883e8f65222e84c61a72bd3541fac70
parent aeefd695c6ebeb8c486590a49e38db466f43c3bc
Author: Dan Callaghan <djc@djc.id.au>
Date: Sun, 27 Apr 2025 17:45:59 +1000
fix typo in DraftManager#discard handling already deleted draft
Diffstat:
2 files changed, 13 insertions(+), 1 deletion(-)
diff --git a/lib/sup/draft.rb b/lib/sup/draft.rb
@@ -23,7 +23,7 @@ class DraftManager
def discard m
raise ArgumentError, "not a draft: source id #{m.source.id.inspect}, should be #{DraftManager.source_id.inspect} for #{m.id.inspect}" unless m.source.id.to_i == DraftManager.source_id
Index.delete m.id
- File.delete @source.fn_for_offset(m.source_info) rescue Errono::ENOENT
+ File.delete @source.fn_for_offset(m.source_info) rescue Errno::ENOENT
UpdateManager.relay self, :single_message_deleted, m
end
end
diff --git a/test/integration/test_draft.rb b/test/integration/test_draft.rb
@@ -55,4 +55,16 @@ EOS
DraftManager.discard message_in_index
refute File.exist? draft_filename
end
+
+ def test_discard_already_deleted_from_disk
+ DraftManager.write_draft { |f| f.write @test_message_1 }
+ draft_filename = File.join @draft_dir, "0"
+ assert File.exist? draft_filename
+ message_in_index = Index.instance.enum_for(:each_message).to_a.first
+
+ File.delete draft_filename
+
+ DraftManager.discard message_in_index
+ refute File.exist? draft_filename
+ end
end