use beagle_turso_core::{Database, Error, OpenOptions};
#[test]
fn push_and_pull_on_local_only_are_not_synced() {
let db = Database::open(OpenOptions::default()).unwrap();
assert!(matches!(db.push(), Err(Error::NotSynced("push"))));
assert!(matches!(db.pull(), Err(Error::NotSynced("pull"))));
}
#[test]
fn not_synced_keeps_the_0_1_message_text() {
let db = Database::open(OpenOptions::default()).unwrap();
let msg = db.push().unwrap_err().to_string();
assert_eq!(msg, "sync failed: push() on a local-only database");
}
#[test]
fn closed_database_reports_closed() {
let db = Database::open(OpenOptions::default()).unwrap();
db.close();
assert!(matches!(db.connect(), Err(Error::Closed)));
assert!(matches!(db.push(), Err(Error::Closed)));
}
#[test]
fn connection_outlives_database_close() {
let db = Database::open(OpenOptions::default()).unwrap();
let conn = db.connect().unwrap();
db.close();
assert!(conn.query("SELECT 1", &[]).is_ok());
}