1
0
mirror of https://github.com/pocketbase/pocketbase.git synced 2025-03-20 14:31:09 +02:00
pocketbase/tests/mailer.go

43 lines
808 B
Go
Raw Normal View History

2022-07-07 00:19:05 +03:00
package tests
import (
2024-07-01 20:53:48 +03:00
"sync"
2022-07-07 00:19:05 +03:00
"github.com/pocketbase/pocketbase/tools/mailer"
)
var _ mailer.Mailer = (*TestMailer)(nil)
// TestMailer is a mock `mailer.Mailer` implementation.
type TestMailer struct {
2024-07-01 20:53:48 +03:00
mux sync.Mutex
TotalSend int
LastMessage mailer.Message
2023-12-29 23:31:54 +02:00
// @todo consider deprecating the above 2 fields?
SentMessages []mailer.Message
2022-07-07 00:19:05 +03:00
}
// Reset clears any previously test collected data.
func (tm *TestMailer) Reset() {
2024-07-01 20:53:48 +03:00
tm.mux.Lock()
defer tm.mux.Unlock()
tm.TotalSend = 0
tm.LastMessage = mailer.Message{}
tm.SentMessages = nil
2022-07-07 00:19:05 +03:00
}
// Send implements `mailer.Mailer` interface.
func (tm *TestMailer) Send(m *mailer.Message) error {
2024-07-01 20:53:48 +03:00
tm.mux.Lock()
defer tm.mux.Unlock()
tm.TotalSend++
tm.LastMessage = *m
tm.SentMessages = append(tm.SentMessages, tm.LastMessage)
2022-07-07 00:19:05 +03:00
return nil
}