summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorJakob L. Kreuze <zerodaysfordays@sdf.org>2020-05-18 22:16:56 -0400
committerJakob L. Kreuze <zerodaysfordays@sdf.org>2020-05-18 22:16:56 -0400
commitdcdf04fbd4f2f861128d08bfe9175e12db7067b7 (patch)
tree73baa84ae5aadf9a1b40acf40777c6611d079060 /src/main.rs
parent508b6e3d77fb1c671bb3ebd6ef760ef25da2c9cc (diff)
Fix `add_tag`.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 033f562..611df3e 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -99,8 +99,8 @@ impl TagBase {
let exists = self
.conn
.prepare("SELECT * FROM tags WHERE name = ?")?
- .exists(params![tag]);
- if let Err(_) = exists {
+ .exists(params![tag])?;
+ if !exists {
self.conn
.execute("INSERT INTO tags (name) VALUES(?)", params![tag])?;
}
@@ -128,7 +128,7 @@ impl TagBase {
FROM mapping
INNER JOIN images ON images.id = ?
INNER JOIN tags
- GROUP BY tags.name",
+ GROUP BY tags.name;",
)?
.query_map(params![image_id], |row| row.get(0))?
.filter_map(|tag| tag.ok())
@@ -167,6 +167,26 @@ mod tests {
.exists(params![id])
.unwrap();
assert!(exists);
+ let exists = tb
+ .conn
+ .prepare("SELECT filename, blake2 FROM images WHERE id = ?;")
+ .unwrap()
+ .exists(params![id + 1])
+ .unwrap();
+ assert!(!exists);
+ }
+
+ #[test]
+ fn tag_image() {
+ let tb = TagBase::make_temporary().unwrap();
+ let id = tb
+ .import_image(Path::new("/fake/path"), "fakehash")
+ .unwrap();
+ tb.add_tag("test").unwrap();
+ tb.tag_image(id, "test").unwrap();
+ let tags = tb.tags_for_image(id).unwrap();
+ assert_eq!(tags.len(), 1);
+ assert!(tags.contains(&String::from("test")));
}
}