coven_database/test_support/
mod.rs1use 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}