Five test modules wrote the same db() over memory_conn, and portable.rs unwrapped it inline; local::test_db() is that. Four pull/push tests wrote the same label INSERT; local::seed_label(conn, id, name, dirty) is it. Both are cfg(test), beside memory_conn, as wire::sample_note is beside wire::Note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -88,6 +88,23 @@ pub(crate) fn memory_conn() -> rusqlite::Result<Connection> {
|
||||
Ok(conn)
|
||||
}
|
||||
|
||||
/// A test's store: [`memory_conn`], which can't fail on a fresh in-memory database.
|
||||
#[cfg(test)]
|
||||
pub(crate) fn test_db() -> Connection {
|
||||
memory_conn().expect("in-memory db")
|
||||
}
|
||||
|
||||
/// A label this device holds, by id and name, for tests that need one in place.
|
||||
#[cfg(test)]
|
||||
pub(crate) fn seed_label(conn: &Connection, id: &str, name: &str, dirty: i64) {
|
||||
conn.execute(
|
||||
"INSERT INTO labels (id, name, color, created_at, updated_at, dirty)
|
||||
VALUES (?1, ?2, 'default', '2026-01-01', '2026-01-01', ?3)",
|
||||
rusqlite::params![id, name, dirty],
|
||||
)
|
||||
.expect("seed label");
|
||||
}
|
||||
|
||||
/// A one-line count summary of the store, for the startup log.
|
||||
pub fn summary(db: &Db) -> String {
|
||||
let conn = match db.conn() {
|
||||
|
||||
@@ -595,7 +595,7 @@ mod tests {
|
||||
use super::*;
|
||||
|
||||
fn store() -> (Connection, BlobStore, std::path::PathBuf) {
|
||||
let conn = crate::local::memory_conn().unwrap();
|
||||
let conn = crate::local::test_db();
|
||||
let blobs = crate::sync::blobs::scratch("portable");
|
||||
let dir = blobs.root().to_path_buf();
|
||||
(conn, blobs, dir)
|
||||
|
||||
@@ -81,9 +81,7 @@ pub fn sweep_if_unlinked(conn: &Connection) -> rusqlite::Result<Option<usize>> {
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn db() -> Connection {
|
||||
crate::local::memory_conn().expect("in-memory db")
|
||||
}
|
||||
use crate::local::test_db as db;
|
||||
|
||||
/// A trashed note of a given age, stamped in the format the CLIENT writes
|
||||
/// (`...Z`, millisecond precision — see `store::now`).
|
||||
|
||||
@@ -1123,9 +1123,7 @@ mod tests {
|
||||
|
||||
use super::*;
|
||||
|
||||
fn db() -> Connection {
|
||||
crate::local::memory_conn().expect("in-memory db")
|
||||
}
|
||||
use crate::local::test_db as db;
|
||||
|
||||
fn note(conn: &Connection, body: &str) -> Note {
|
||||
create_note(
|
||||
|
||||
+3
-15
@@ -508,9 +508,7 @@ pub async fn run(
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn db() -> Connection {
|
||||
crate::local::memory_conn().expect("in-memory db")
|
||||
}
|
||||
use crate::local::test_db as db;
|
||||
|
||||
fn note(id: &str, revision: i64) -> wire::Note {
|
||||
wire::sample_note(id, revision)
|
||||
@@ -738,12 +736,7 @@ mod tests {
|
||||
#[test]
|
||||
fn server_label_replaces_a_local_duplicate_by_name() {
|
||||
let conn = db();
|
||||
conn.execute(
|
||||
"INSERT INTO labels (id, name, color, created_at, updated_at, dirty)
|
||||
VALUES ('local-id', 'Work', 'default', '2026-01-01', '2026-01-01', 1)",
|
||||
[],
|
||||
)
|
||||
.expect("seed local label");
|
||||
crate::local::seed_label(&conn, "local-id", "Work", 1);
|
||||
|
||||
let server = wire::Label {
|
||||
id: "server-id".into(),
|
||||
@@ -768,12 +761,7 @@ mod tests {
|
||||
// plain delete would strip the label off them with nothing to repair it.
|
||||
let conn = db();
|
||||
apply_page(&conn, &page(vec![note("n1", 1)], vec![], 1)).expect("seed note");
|
||||
conn.execute(
|
||||
"INSERT INTO labels (id, name, color, created_at, updated_at, dirty)
|
||||
VALUES ('local-id', 'Work', 'default', '2026-01-01', '2026-01-01', 1)",
|
||||
[],
|
||||
)
|
||||
.expect("seed local label");
|
||||
crate::local::seed_label(&conn, "local-id", "Work", 1);
|
||||
conn.execute(
|
||||
"INSERT INTO note_labels (note_id, label_id, via_tag)
|
||||
VALUES ('n1', 'local-id', 0)",
|
||||
|
||||
+3
-15
@@ -704,9 +704,7 @@ mod tests {
|
||||
use super::*;
|
||||
use crate::local::store;
|
||||
|
||||
fn db() -> Connection {
|
||||
crate::local::memory_conn().expect("in-memory db")
|
||||
}
|
||||
use crate::local::test_db as db;
|
||||
|
||||
fn seed_note(conn: &Connection, id: &str, dirty: i64) {
|
||||
conn.execute(
|
||||
@@ -754,12 +752,7 @@ mod tests {
|
||||
let conn = db();
|
||||
seed_note(&conn, "n1", 1);
|
||||
for (id, name, via_tag) in [("manual", "Manual", 0), ("tagged", "Tagged", 1)] {
|
||||
conn.execute(
|
||||
"INSERT INTO labels (id, name, color, created_at, updated_at, dirty)
|
||||
VALUES (?1, ?2, 'default', '2026-01-01', '2026-01-01', 0)",
|
||||
params![id, name],
|
||||
)
|
||||
.expect("seed label");
|
||||
crate::local::seed_label(&conn, id, name, 0);
|
||||
conn.execute(
|
||||
"INSERT INTO note_labels (note_id, label_id, via_tag) VALUES ('n1', ?1, ?2)",
|
||||
params![id, via_tag],
|
||||
@@ -877,12 +870,7 @@ mod tests {
|
||||
let conn = db();
|
||||
seed_note(&conn, "n1", 0);
|
||||
for (id, name) in [("src", "Source"), ("dst", "Target")] {
|
||||
conn.execute(
|
||||
"INSERT INTO labels (id, name, color, created_at, updated_at, dirty)
|
||||
VALUES (?1, ?2, 'default', '2026-01-01', '2026-01-01', 0)",
|
||||
params![id, name],
|
||||
)
|
||||
.expect("seed label");
|
||||
crate::local::seed_label(&conn, id, name, 0);
|
||||
}
|
||||
conn.execute(
|
||||
"INSERT INTO note_labels (note_id, label_id, via_tag) VALUES ('n1', 'src', 0)",
|
||||
|
||||
@@ -309,9 +309,7 @@ pub fn status(conn: &Connection) -> rusqlite::Result<Status> {
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
fn db() -> Connection {
|
||||
crate::local::memory_conn().expect("in-memory db")
|
||||
}
|
||||
use crate::local::test_db as db;
|
||||
|
||||
#[test]
|
||||
fn fresh_store_is_unlinked() {
|
||||
|
||||
Reference in New Issue
Block a user