package mail import ( "context" "sync" ) // Recording is a test Notifier that records calls. type Recording struct { mu sync.Mutex Msgs []QuestionAnswered } func (r *Recording) NotifyQuestionAnswered(_ context.Context, msg QuestionAnswered) error { r.mu.Lock() defer r.mu.Unlock() r.Msgs = append(r.Msgs, msg) return nil } func (r *Recording) Len() int { r.mu.Lock() defer r.mu.Unlock() return len(r.Msgs) } // Snapshot returns a copy of recorded messages. func (r *Recording) Snapshot() []QuestionAnswered { r.mu.Lock() defer r.mu.Unlock() out := make([]QuestionAnswered, len(r.Msgs)) copy(out, r.Msgs) return out }