diff --git a/pkg/message/manager.go b/pkg/message/manager.go index 324192e..0224035 100644 --- a/pkg/message/manager.go +++ b/pkg/message/manager.go @@ -122,6 +122,7 @@ func (s *StoreManager) Deliver( To: inbound.To, Date: now, Subject: inbound.Subject, + Size: inbound.Size, }, Reader: io.MultiReader(strings.NewReader(recvd), bytes.NewReader(source)), } diff --git a/pkg/message/manager_test.go b/pkg/message/manager_test.go index 74ab905..cf96b59 100644 --- a/pkg/message/manager_test.go +++ b/pkg/message/manager_test.go @@ -312,7 +312,7 @@ func TestDeliverEmitsAfterMessageStoredEvent(t *testing.T) { origin, []*policy.Recipient{recip}, "Received: xyz\n", - []byte("From: from@example.com\n\ntest email"), + []byte("From: from@example.com\nSubject: events\n\ntest email."), ); err != nil { t.Fatal(err) } @@ -321,6 +321,17 @@ func TestDeliverEmitsAfterMessageStoredEvent(t *testing.T) { require.NoError(t, err) assert.NotNil(t, got, "No event received, or it was nil") assertMessageCount(t, sm, "to@example.com", 1) + + // Verify event content. + assert.Equal(t, "to@example.com", got.Mailbox) + assert.Equal(t, "from@example.com", got.From.Address) + + assert.WithinDuration(t, time.Now(), got.Date, 5*time.Second) + assert.Equal(t, "events", got.Subject, nil) + assert.Equal(t, int64(51), got.Size) + + require.Len(t, got.To, 1) + assert.Equal(t, "to@example.com", got.To[0].Address) } func TestDeliverBeforeAndAfterMessageStoredEvents(t *testing.T) {