use super::super::super::parse::ServerDb;
use super::build_runtime_block;
#[test]
fn postgres_runtime_block_still_takes_a_pgpool_builder() {
let generated = build_runtime_block(ServerDb::Postgres, &[], &[], &[]).to_string();
assert!(
generated.contains("fn builder (pool : :: cratestack :: sqlx :: PgPool)"),
"db = Postgres must keep its existing `Cratestack::builder(pool: PgPool)` \
signature byte-for-byte — generated tokens were: {generated}"
);
assert!(generated.contains("fn pool (& self) -> & :: cratestack :: sqlx :: PgPool"));
assert!(generated.contains("runtime : :: cratestack :: __private :: SqlxRuntime"));
}
#[test]
fn none_runtime_block_builder_takes_no_pool_parameter() {
let generated = build_runtime_block(ServerDb::None, &[], &[], &[]).to_string();
assert!(
generated.contains("fn builder () -> CratestackBuilder"),
"db = None must produce a `Cratestack::builder()` with zero parameters — \
generated tokens were: {generated}"
);
}
#[test]
fn none_runtime_block_never_mentions_pgpool_or_sqlx() {
let generated = build_runtime_block(ServerDb::None, &[], &[], &[]).to_string();
assert!(
!generated.contains("PgPool"),
"db = None runtime block must not reference `PgPool` at all — found it in: {generated}"
);
assert!(
!generated.contains("sqlx"),
"db = None runtime block must not reference `sqlx` at all — found it in: {generated}"
);
assert!(
!generated.contains("SqlxRuntime"),
"db = None runtime block must not reference `SqlxRuntime` at all — found it in: \
{generated}"
);
}
#[test]
fn none_runtime_block_cratestack_type_is_a_zero_field_marker() {
let generated = build_runtime_block(ServerDb::None, &[], &[], &[]).to_string();
assert!(generated.contains("pub struct Cratestack ;"));
assert!(!generated.contains("fn events"));
assert!(!generated.contains("fn views"));
}