Canned assigns for every Accrue.Emails.* type (D6-08).
Lives in lib/ (not test/support/) so that:
mix accrue.mail.preview(Plan 06-07) can import withouttest-env dependencies.- ExUnit tests can call it without setup boilerplate.
- (Phase 7)
AccrueAdmin.EmailPreviewLivecan import viaimport Accrue.Emails.Fixtures.
Pure data — zero side effects, no Accrue.Repo calls, no
DateTime.utc_now/0. Deterministic: every call returns byte-identical
output given no environment changes.
Usage
iex> Accrue.Emails.Fixtures.receipt()
%{context: %{...}, subject: "Receipt", preview: "Thanks for your payment"}
iex> Accrue.Emails.Fixtures.all()
%{receipt: %{...}, payment_failed: %{...}, ...}
Summary
Functions
Returns the full catalogue as a map of email type atom → fixture map.
Base render context re-used by most email fixtures. Contains a
frozen branding snapshot, a fake customer, a fake invoice, two
line items, and pre-formatted money strings so templates can render
without calling Accrue.Invoices.Render.format_money/3.
Fixture for Accrue.Emails.CardExpiringSoon (Phase 3 cron).
Fixture for Accrue.Emails.CouponApplied (MAIL-13).
Fixture for Accrue.Emails.InvoiceFinalized (MAIL-07).
Fixture for Accrue.Emails.InvoicePaid (MAIL-08).
Fixture for Accrue.Emails.InvoicePaymentFailed (MAIL-09).
Fixture for Accrue.Emails.PaymentFailed (MAIL-04).
Fixture for Accrue.Emails.Receipt (MAIL-03).
Fixture for Accrue.Emails.RefundIssued (MAIL-12).
Fixture for Accrue.Emails.SubscriptionCanceled (MAIL-10).
Fixture for Accrue.Emails.SubscriptionPaused (MAIL-11a).
Fixture for Accrue.Emails.SubscriptionResumed (MAIL-11b).
Fixture for Accrue.Emails.TrialEnded (MAIL-06).
Fixture for Accrue.Emails.TrialEnding (MAIL-05).
Functions
Returns the full catalogue as a map of email type atom → fixture map.
Used by mix accrue.mail.preview (Plan 06-07) to iterate every
registered type and by ExUnit tests to drive coverage loops.
@spec base_context() :: map()
Base render context re-used by most email fixtures. Contains a
frozen branding snapshot, a fake customer, a fake invoice, two
line items, and pre-formatted money strings so templates can render
without calling Accrue.Invoices.Render.format_money/3.
Fixture for Accrue.Emails.CardExpiringSoon (Phase 3 cron).
Fixture for Accrue.Emails.CouponApplied (MAIL-13).
Fixture for Accrue.Emails.InvoiceFinalized (MAIL-07).
Fixture for Accrue.Emails.InvoicePaid (MAIL-08).
Fixture for Accrue.Emails.InvoicePaymentFailed (MAIL-09).
Fixture for Accrue.Emails.PaymentFailed (MAIL-04).
Fixture for Accrue.Emails.Receipt (MAIL-03).
Fixture for Accrue.Emails.RefundIssued (MAIL-12).
Fixture for Accrue.Emails.SubscriptionCanceled (MAIL-10).
Fixture for Accrue.Emails.SubscriptionPaused (MAIL-11a).
Fixture for Accrue.Emails.SubscriptionResumed (MAIL-11b).
Fixture for Accrue.Emails.TrialEnded (MAIL-06).
Fixture for Accrue.Emails.TrialEnding (MAIL-05).