mirror of
https://github.com/jhillyerd/inbucket.git
synced 2025-12-17 17:47:03 +00:00
file & mem stores should emit delete events on purge (#338)
Signed-off-by: James Hillyerd <james@hillyerd.com>
This commit is contained in:
@@ -343,16 +343,33 @@ func testDelete(t *testing.T, store storage.Store, extHost *extension.Host) {
|
||||
func testPurge(t *testing.T, store storage.Store, extHost *extension.Host) {
|
||||
mailbox := "fred"
|
||||
subjects := []string{"alpha", "bravo", "charlie", "delta", "echo"}
|
||||
|
||||
// Subscribe to events.
|
||||
eventListener := extHost.Events.AfterMessageDeleted.AsyncTestListener(len(subjects))
|
||||
|
||||
// Populate mailbox.
|
||||
for _, subj := range subjects {
|
||||
DeliverToStore(t, store, mailbox, subj, time.Now())
|
||||
}
|
||||
GetAndCountMessages(t, store, mailbox, len(subjects))
|
||||
|
||||
// Purge and verify.
|
||||
err := store.PurgeMessages(mailbox)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
require.NoError(t, err)
|
||||
GetAndCountMessages(t, store, mailbox, 0)
|
||||
|
||||
// Confirm events emitted.
|
||||
gotEvents := []*event.MessageMetadata{}
|
||||
for range subjects {
|
||||
ev, err := eventListener()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
break
|
||||
}
|
||||
gotEvents = append(gotEvents, ev)
|
||||
}
|
||||
assert.Equal(t, len(subjects), len(gotEvents),
|
||||
"expected delete event for each message in mailbox")
|
||||
}
|
||||
|
||||
// testMsgCap verifies the message cap is enforced.
|
||||
|
||||
Reference in New Issue
Block a user