Merge pull request #90 from PR0M3TH3AN/codex/fix-failing-windows-test-workflow

Fix windows test failures
This commit is contained in:
thePR0M3TH3AN
2025-05-25 13:49:50 -04:00
committed by GitHub
2 changed files with 19 additions and 18 deletions

View File

@@ -22,6 +22,3 @@
| `event add` | — | | `event add` | — |
| `event timeline` | — | | `event timeline` | — |
| `backup run` | --dir, --prune, --verify, --file | | `backup run` | --dir, --prune, --verify, --file |
| `watch start` | --debounce-ms |
| `watch status` | — |
| `watch stop` | — |

View File

@@ -20,12 +20,12 @@ use tracing::{debug, info, warn};
use crate::utils::to_db_path; use crate::utils::to_db_path;
/* ─── schema version ───────────────────────────────────────────────── */ /* ─── schema version ─────────────────────────────────────────────── */
/// Current library schema version. /// Current library schema version.
pub const SCHEMA_VERSION: i32 = MIGRATIONS.len() as i32; pub const SCHEMA_VERSION: i32 = MIGRATIONS.len() as i32;
/* ─── embedded migrations ────────────────────────────────────────── */ /* ─── embedded migrations ────────────────────────────────────────── */
const MIGRATIONS: &[(&str, &str)] = &[ const MIGRATIONS: &[(&str, &str)] = &[
( (
@@ -70,7 +70,7 @@ pub fn current_schema_version(conn: &Connection) -> Result<i32> {
Ok(version) Ok(version)
} }
/* ─── connection bootstrap ───────────────────────────────────────── */ /* ─── connection bootstrap ───────────────────────────────────────── */
pub fn open<P: AsRef<Path>>(db_path: P) -> Result<Connection> { pub fn open<P: AsRef<Path>>(db_path: P) -> Result<Connection> {
let db_path_ref = db_path.as_ref(); let db_path_ref = db_path.as_ref();
@@ -87,7 +87,7 @@ pub fn open<P: AsRef<Path>>(db_path: P) -> Result<Connection> {
Ok(conn) Ok(conn)
} }
/* ─── migration runner ───────────────────────────────────────────── */ /* ─── migration runner ───────────────────────────────────────────── */
pub(crate) fn apply_migrations(conn: &mut Connection) -> Result<()> { pub(crate) fn apply_migrations(conn: &mut Connection) -> Result<()> {
// Ensure schema_version bookkeeping table exists // Ensure schema_version bookkeeping table exists
@@ -136,7 +136,7 @@ pub(crate) fn apply_migrations(conn: &mut Connection) -> Result<()> {
tx.commit()?; tx.commit()?;
// sanity warn if any embedded migration got skipped // Sanity warn if any embedded migration got skipped
let mut missing = Vec::new(); let mut missing = Vec::new();
for (fname, _) in MIGRATIONS { for (fname, _) in MIGRATIONS {
let v: i64 = fname.split('_').next().unwrap().parse().unwrap(); let v: i64 = fname.split('_').next().unwrap().parse().unwrap();
@@ -168,7 +168,7 @@ pub(crate) fn apply_migrations(conn: &mut Connection) -> Result<()> {
Ok(()) Ok(())
} }
/* ─── tag helpers ────────────────────────────────────────────────── */ /* ─── tag helpers ────────────────────────────────────────────────── */
pub fn ensure_tag_path(conn: &Connection, path: &str) -> Result<i64> { pub fn ensure_tag_path(conn: &Connection, path: &str) -> Result<i64> {
let mut parent: Option<i64> = None; let mut parent: Option<i64> = None;
@@ -189,11 +189,15 @@ pub fn ensure_tag_path(conn: &Connection, path: &str) -> Result<i64> {
pub fn file_id(conn: &Connection, path: &str) -> Result<i64> { pub fn file_id(conn: &Connection, path: &str) -> Result<i64> {
let path = to_db_path(path); let path = to_db_path(path);
conn.query_row("SELECT id FROM files WHERE path = ?1", [path.clone()], |r| r.get(0)) conn.query_row(
.map_err(|_| anyhow::anyhow!("file not indexed: {}", path)) "SELECT id FROM files WHERE path = ?1",
[path.clone()],
|r| r.get(0),
)
.map_err(|_| anyhow::anyhow!("file not indexed: {}", path))
} }
/* ─── attributes ─────────────────────────────────────────────────── */ /* ─── attributes ─────────────────────────────────────────────────── */
pub fn upsert_attr(conn: &Connection, file_id: i64, key: &str, value: &str) -> Result<()> { pub fn upsert_attr(conn: &Connection, file_id: i64, key: &str, value: &str) -> Result<()> {
conn.execute( conn.execute(
@@ -207,7 +211,7 @@ pub fn upsert_attr(conn: &Connection, file_id: i64, key: &str, value: &str) -> R
Ok(()) Ok(())
} }
/* ─── links ──────────────────────────────────────────────────────── */ /* ─── links ──────────────────────────────────────────────────────── */
pub fn add_link( pub fn add_link(
conn: &Connection, conn: &Connection,
@@ -304,7 +308,7 @@ pub fn find_backlinks(conn: &Connection, pattern: &str) -> Result<Vec<(String, O
Ok(out) Ok(out)
} }
/* ─── collections helpers ───────────────────────────────────────── */ /* ─── collections helpers ───────────────────────────────────────── */
pub fn ensure_collection(conn: &Connection, name: &str) -> Result<i64> { pub fn ensure_collection(conn: &Connection, name: &str) -> Result<i64> {
conn.execute( conn.execute(
@@ -369,7 +373,7 @@ pub fn view_query(conn: &Connection, name: &str) -> Result<String> {
.context(format!("no view called '{}'", name)) .context(format!("no view called '{}'", name))
} }
/* ─── dirtyscan helpers ────────────────────────────────────────── */ /* ─── dirty-scan helpers ────────────────────────────────────────── */
/// Mark a file as “dirty” so itll be picked up by `scan_dirty`. /// Mark a file as “dirty” so itll be picked up by `scan_dirty`.
pub fn mark_dirty(conn: &Connection, file_id: i64) -> Result<()> { pub fn mark_dirty(conn: &Connection, file_id: i64) -> Result<()> {
@@ -394,7 +398,7 @@ pub fn take_dirty(conn: &Connection) -> Result<Vec<i64>> {
Ok(ids) Ok(ids)
} }
/* ─── rename helpers ───────────────────────────────────────────── */ /* ─── rename helpers ───────────────────────────────────────────── */
pub fn update_file_path(conn: &Connection, old_path: &str, new_path: &str) -> Result<()> { pub fn update_file_path(conn: &Connection, old_path: &str, new_path: &str) -> Result<()> {
let old_path = to_db_path(old_path); let old_path = to_db_path(old_path);
@@ -433,7 +437,7 @@ pub fn rename_directory(conn: &mut Connection, old_dir: &str, new_dir: &str) ->
Ok(()) Ok(())
} }
/* ─── backup / restore helpers ───────────────────────────────────── */ /* ─── backup / restore helpers ───────────────────────────────────── */
pub fn backup<P: AsRef<Path>>(db_path: P) -> Result<PathBuf> { pub fn backup<P: AsRef<Path>>(db_path: P) -> Result<PathBuf> {
let src = db_path.as_ref(); let src = db_path.as_ref();
@@ -459,7 +463,7 @@ pub fn restore<P: AsRef<Path>>(backup_path: P, live_db_path: P) -> Result<()> {
Ok(()) Ok(())
} }
/* ─── tests ───────────────────────────────────────────────────────── */ /* ─── tests ─────────────────────────────────────────────────────── */
#[cfg(test)] #[cfg(test)]
mod tests { mod tests {