Carbonite.Query.current_transaction
You're seeing just the function
current_transaction
, go back to Carbonite.Query module for more information.
Specs
current_transaction([current_transaction_option()]) :: Ecto.Query.t()
Returns an Ecto.Query
that can be used to select or delete the "current" transaction.
This function is useful when your tests run in a database transaction using Ecto's SQL sandbox.
Examples
Asserting on the current transaction
When you insert your Carbonite.Transaction
record somewhere inside your domain logic, you do
not wish to return it to the caller only to be able to assert on its attributes in tests. This
is how you can assert on the current transaction:
Carbonite.Query.current_transaction()
|> MyApp.Repo.all()
# Preload changes
Carbonite.Query.current_transaction(preload: :changes)
|> MyApp.Repo.all()
# Same
Carbonite.Query.current_transaction(preload: true)
|> MyApp.Repo.all()
Erasing the current transaction
Sometimes your test code may run a particular function twice (in multiple transactions if it
wasn't for the SQL sandbox), in which case you may need to delete the Carbonite.Transaction
inserted first in between.
# This deletes the transaction as well as any associated change (per FK constraint)
Carbonite.Query.current_transaction()
|> MyApp.Repo.delete_all()
Options
carbonite_prefix
defines the audit trail's schema, defaults to"carbonite_default"
preload
can be used to preload the changes