import { MailProvider, SendEmailInput, SendEmailResult } from "./mail-provider";

export class InMemoryMailProvider implements MailProvider {
  public sentEmails: SendEmailInput[] = [];
  public shouldFail = false;
  public failureMessage = "Erro simulado de envio";

  async send(input: SendEmailInput): Promise<SendEmailResult> {
    this.sentEmails.push(input);

    if (this.shouldFail) {
      return { success: false, errorMessage: this.failureMessage };
    }

    return { success: true };
  }
}
