riftenlabs-indexer/src/utiltest.rs

40 lines
1.2 KiB
Rust
Raw Normal View History

2026-01-21 12:34:59 +01:00
// Copyright (C) 2024-2026 Whiterun LLC
2024-10-31 10:55:29 +00:00
//
// This software is licensed under the GNU Affero General Public License (AGPL), version 3.0 or later.
// A copy of the license can be found in the LICENSE file or at https://www.gnu.org/licenses/agpl-3.0.html
#[allow(clippy::items_after_test_module)]
2024-10-31 10:55:29 +00:00
#[cfg(test)]
mod test_utils {
use crate::db::DB;
use r2d2::Pool;
use r2d2_sqlite::SqliteConnectionManager;
use rusqlite::Connection;
use std::sync::Arc;
pub fn mock_db_pool<F>(setup_fn: F) -> DB
where
F: Fn(&Connection),
{
let manager = SqliteConnectionManager::memory();
let pool = Pool::new(manager).expect("Failed to create pool.");
let write_conn = pool.get().expect("Failed to get connection.");
setup_fn(&write_conn);
DB {
cauldron_w: Arc::new(pool.clone()),
cauldron_r: Arc::new(pool.clone()),
bcmr_w: Arc::new(pool.clone()),
bcmr_r: Arc::new(pool.clone()),
crc20_w: Arc::new(pool.clone()),
crc20_r: Arc::new(pool.clone()),
oracle_w: Arc::new(pool.clone()),
oracle_r: Arc::new(pool.clone()),
2024-10-31 10:55:29 +00:00
}
}
}
#[cfg(test)]
pub use test_utils::mock_db_pool;