Accrue.Test (accrue v1.0.0)

Copy Markdown View Source

Public test helper facade for host applications.

use Accrue.Test imports the stable assertion helpers and action helpers intended for host DataCase/ConnCase modules.

Summary

Functions

Returns meter events captured by Accrue.Processor.Fake for customer_or_id (same argument shapes as Accrue.Processor.Fake.meter_events_for/1).

Configures Accrue to use the in-memory Fake processor for the current test.

Configures Accrue to capture mail deliveries through Accrue.Mailer.Test.

Configures Accrue to capture PDF renders through Accrue.PDF.Test.

Functions

advance_clock(subject, duration)

See Accrue.Test.Clock.advance/2.

meter_events_for(customer_or_id)

@spec meter_events_for(Accrue.Billing.Customer.t() | String.t()) :: [map()]

Returns meter events captured by Accrue.Processor.Fake for customer_or_id (same argument shapes as Accrue.Processor.Fake.meter_events_for/1).

Prefer asserting %Accrue.Billing.MeterEvent{} rows via Ecto.Repo first; use this helper when processor-shaped payloads matter.

Raises ArgumentError unless Accrue.Processor.__impl__() is Accrue.Processor.Fake.

Implementation

single facade: delegates reads to Accrue.Processor.Fake so hosts discover the helper through Accrue.Test instead of importing the Fake module directly.

setup_fake_processor(context \\ [])

@spec setup_fake_processor(keyword() | map()) :: :ok | {:ok, keyword()}

Configures Accrue to use the in-memory Fake processor for the current test.

setup_mailer_test(context \\ [])

@spec setup_mailer_test(keyword() | map()) :: :ok | {:ok, keyword()}

Configures Accrue to capture mail deliveries through Accrue.Mailer.Test.

setup_pdf_test(context \\ [])

@spec setup_pdf_test(keyword() | map()) :: :ok | {:ok, keyword()}

Configures Accrue to capture PDF renders through Accrue.PDF.Test.

trigger_event(type, subject)

See Accrue.Test.Webhooks.trigger/2.