Skip to main content

coven_database/test_support/
mod.rs

1use super::coven_schema::DatabaseTestTable;
2use super::{Connection, DbError};
3
4mod circle_fixture;
5mod database;
6mod database_capabilities;
7mod image;
8pub mod synthetic_store;
9
10pub use image::DatabaseImageTest;
11
12#[derive(Clone, Copy)]
13pub enum RetainedRegistrationTamper {
14    CanonicalRegistration,
15    ActivationAuthority,
16}
17
18pub type OutboxAttempt = (i64, Option<String>, Option<String>);
19
20#[derive(Debug, PartialEq, Eq)]
21pub struct ScopedRoutingStateForTest {
22    pub row: Option<(Option<String>, String, String)>,
23    pub route: Option<(String, String)>,
24    pub mirror: Option<(Option<String>, String)>,
25}
26
27pub(crate) fn table_row_count(
28    connection: &Connection,
29    table: DatabaseTestTable,
30) -> Result<i64, DbError> {
31    connection
32        .query_row(&format!("SELECT COUNT(*) FROM {}", table.0), [], |row| {
33            row.get(0)
34        })
35        .map_err(DbError::from)
36}
37
38pub(crate) fn clear_table(
39    connection: &Connection,
40    table: DatabaseTestTable,
41) -> Result<(), DbError> {
42    connection
43        .execute(&format!("DELETE FROM {}", table.0), [])
44        .map(|_| ())
45        .map_err(DbError::from)
46}
47
48pub(crate) fn author_exclusion_activation_evidence(
49    connection: &Connection,
50) -> Result<(String, String, String, String), DbError> {
51    connection
52        .query_row(
53            "SELECT exclusion_ref, accepted_cut, activation_commit, activation_head
54             FROM store_author_exclusion_activations",
55            [],
56            |row| Ok((row.get(0)?, row.get(1)?, row.get(2)?, row.get(3)?)),
57        )
58        .map_err(DbError::from)
59}