From 95beacc6c8a76a96948ef14ecb571cd236ee1ebe Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Wed, 21 May 2025 08:33:45 -0400 Subject: [PATCH] test: verify dirty helpers --- libmarlin/src/db_tests.rs | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/libmarlin/src/db_tests.rs b/libmarlin/src/db_tests.rs index 85825b4..37a1766 100644 --- a/libmarlin/src/db_tests.rs +++ b/libmarlin/src/db_tests.rs @@ -173,3 +173,29 @@ fn backup_and_restore_cycle() { conn2.query_row("SELECT COUNT(*) FROM files WHERE path='x.bin'", [], |r| r.get(0)).unwrap(); assert_eq!(cnt, 1); } + +mod dirty_helpers { + use super::{db, open_mem}; + + #[test] + fn mark_and_take_dirty_works() { + let conn = open_mem(); + conn.execute( + "INSERT INTO files(path, size, mtime) VALUES (?1, 0, 0)", + ["dummy.txt"], + ) + .unwrap(); + let fid: i64 = conn + .query_row("SELECT id FROM files WHERE path='dummy.txt'", [], |r| r.get(0)) + .unwrap(); + + db::mark_dirty(&conn, fid).unwrap(); + db::mark_dirty(&conn, fid).unwrap(); + + let dirty = db::take_dirty(&conn).unwrap(); + assert_eq!(dirty, vec![fid]); + + let empty = db::take_dirty(&conn).unwrap(); + assert!(empty.is_empty()); + } +}