Something went wrong. Try again.
A lexicon-driven AppView for ATProto. forked from gamesgamesgamesgames.games/happyview
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566use happyview::db::{self, DatabaseBackend};use sqlx::AnyPool;
pub async fn test_pool() -> AnyPool { let url = std::env::var("TEST_DATABASE_URL").expect("TEST_DATABASE_URL must be set for e2e tests");
let backend = DatabaseBackend::from_url(&url); db::connect(&url, backend).await}
pub fn test_backend() -> DatabaseBackend { let url = std::env::var("TEST_DATABASE_URL").expect("TEST_DATABASE_URL must be set for e2e tests"); DatabaseBackend::from_url(&url)}
pub async fn truncate_all(pool: &AnyPool) { let backend = test_backend(); match backend { DatabaseBackend::Postgres => { sqlx::query( "TRUNCATE records, lexicons, backfill_jobs, users, user_permissions, api_keys, event_logs, script_variables, actor_metadata, dead_letter_hooks, dead_letter_service_hooks, service_hooks, record_refs, labeler_subscriptions, labels, labeler_identity, label_definitions, emitted_labels, emitted_label_state, moderation_reports, instance_settings, domains, dpop_sessions, dpop_keys, api_clients RESTART IDENTITY CASCADE", ) .execute(pool) .await .expect("failed to truncate tables"); } DatabaseBackend::Sqlite => { let tables = [ "dpop_sessions", "dpop_keys", "api_clients", "records", "lexicons", "backfill_jobs", "users", "user_permissions", "api_keys", "event_logs", "script_variables", "actor_metadata", "dead_letter_hooks", "dead_letter_service_hooks", "service_hooks", "record_refs", "labeler_subscriptions", "labels", "emitted_label_state", "emitted_labels", "label_definitions", "labeler_identity", "moderation_reports", "instance_settings", "domains", ]; for table in tables { sqlx::query(&format!("DELETE FROM {table}")) .execute(pool) .await .unwrap_or_else(|e| panic!("failed to delete from {table}: {e}")); } } }}