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) } }