38 lines
944 B
Go
38 lines
944 B
Go
package imapclient
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"email-mcp/internal/secretstore"
|
|
)
|
|
|
|
type backendStub struct{}
|
|
|
|
func (backendStub) ListMailboxes(context.Context, secretstore.Credential) ([]Mailbox, error) {
|
|
return []Mailbox{{Name: "INBOX"}}, nil
|
|
}
|
|
|
|
func (backendStub) ListMessages(context.Context, secretstore.Credential, string, int) ([]MessageSummary, error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (backendStub) GetMessage(context.Context, secretstore.Credential, string, string) (Message, error) {
|
|
return Message{}, nil
|
|
}
|
|
|
|
func TestServiceListMailboxesUsesBackend(t *testing.T) {
|
|
svc := NewService(backendStub{})
|
|
|
|
boxes, err := svc.ListMailboxes(context.Background(), secretstore.Credential{
|
|
Host: "imap.example.com",
|
|
Username: "alice",
|
|
Password: "secret",
|
|
})
|
|
if err != nil {
|
|
t.Fatalf("ListMailboxes returned error: %v", err)
|
|
}
|
|
if len(boxes) != 1 || boxes[0].Name != "INBOX" {
|
|
t.Fatalf("unexpected mailboxes: %#v", boxes)
|
|
}
|
|
}
|