pub struct IsolatedTestDb { /* private fields */ }Expand description
A test database that exists for the lifetime of a single test.
The database is automatically created on construction. Cleanup happens
when cleanup() is called or when the database is reused in subsequent
test runs (orphaned databases are cleaned up automatically).
Implementations§
Source§impl IsolatedTestDb
impl IsolatedTestDb
Sourcepub async fn execute(&self, sql: &str) -> Result<()>
pub async fn execute(&self, sql: &str) -> Result<()>
Run raw SQL to set up test data or schema.
Sourcepub async fn run_sql(&self, sql: &str) -> Result<()>
pub async fn run_sql(&self, sql: &str) -> Result<()>
Run multi-statement SQL for setup.
This handles SQL with multiple statements separated by semicolons, including PL/pgSQL functions with dollar-quoted strings.
Sourcepub async fn cleanup(self) -> Result<()>
pub async fn cleanup(self) -> Result<()>
Cleanup the test database by dropping it.
Call this at the end of your test if you want immediate cleanup. Otherwise, orphaned databases will be cleaned up on subsequent test runs.
Sourcepub async fn migrate(&self, migrations_dir: &Path) -> Result<()>
pub async fn migrate(&self, migrations_dir: &Path) -> Result<()>
Run migrations from a directory.
Loads all .sql files from the directory, sorts them alphabetically,
and executes them in order. This is intended for test setup.
§Example
let base = TestDatabase::embedded().await?;
let db = base.isolated("my_test").await?;
db.migrate(Path::new("migrations")).await?;Auto Trait Implementations§
impl Freeze for IsolatedTestDb
impl !RefUnwindSafe for IsolatedTestDb
impl Send for IsolatedTestDb
impl Sync for IsolatedTestDb
impl Unpin for IsolatedTestDb
impl !UnwindSafe for IsolatedTestDb
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more