@@ -70,6 +70,32 @@ func TestCollectorDrainOnceQuarantinesMalformedInbox(t *testing.T) {
7070 require .Len (t , entries , 1 )
7171}
7272
73+ func TestCollectorDrainOnceIgnoresAtomicWriteTempFiles (t * testing.T ) {
74+ t .Parallel ()
75+
76+ baseDir := t .TempDir ()
77+ store , err := New (baseDir )
78+ require .NoError (t , err )
79+
80+ event := testEvent ("evt-final" , time .Date (2026 , 3 , 29 , 12 , 0 , 0 , 0 , time .UTC ))
81+ require .NoError (t , store .Emit (context .Background (), event ))
82+
83+ tmpFile := filepath .Join (store .inboxDir , "pending.json.tmp.123" )
84+ require .NoError (t , os .WriteFile (tmpFile , []byte ("{partial" ), filePermissions ))
85+
86+ collector , err := NewCollector (baseDir , 10 )
87+ require .NoError (t , err )
88+ require .NoError (t , collector .DrainOnce (context .Background ()))
89+
90+ assertFileExists (t , tmpFile , true )
91+ assertInboxCount (t , store .inboxDir , 1 )
92+ assertLogLineCount (t , filepath .Join (baseDir , "_2026032912.jsonl" ), 1 )
93+
94+ entries , err := os .ReadDir (store .quarantineDir )
95+ require .NoError (t , err )
96+ require .Empty (t , entries )
97+ }
98+
7399func TestCollectorDrainOnceDropsDuplicateInboxEventsWithinSinglePass (t * testing.T ) {
74100 t .Parallel ()
75101
0 commit comments