aboutsummaryrefslogtreecommitdiff
path: root/database/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2026-01-18 03:56:25 +0100
committermetamuffin <metamuffin@disroot.org>2026-01-18 03:56:25 +0100
commit901dff07ed357694eb35284a58c3cc6c003c53ce (patch)
treef6716c35112d25d8e8c3ece0e2305a261f2066e2 /database/src
parent999249adc1120b1afa8f9d0015c31bea1980a7ee (diff)
downloadjellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar
jellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar.bz2
jellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar.zst
move db tests; remove old imports
Diffstat (limited to 'database/src')
-rw-r--r--database/src/lib.rs2
-rw-r--r--database/src/table.rs57
-rw-r--r--database/src/test_shared.rs (renamed from database/src/tests.rs)33
3 files changed, 60 insertions, 32 deletions
diff --git a/database/src/lib.rs b/database/src/lib.rs
index 67cbca4..cd9777d 100644
--- a/database/src/lib.rs
+++ b/database/src/lib.rs
@@ -10,6 +10,6 @@ pub mod table;
pub mod query;
pub mod filter;
#[cfg(test)]
-pub mod tests;
+pub mod test_shared;
pub type Pad32 = u32;
diff --git a/database/src/table.rs b/database/src/table.rs
index ace0fb8..4535b4c 100644
--- a/database/src/table.rs
+++ b/database/src/table.rs
@@ -103,3 +103,60 @@ impl Table {
self.query(txn, query).next()
}
}
+
+#[cfg(test)]
+mod test {
+ use crate::{
+ backends::{Database, new_memory},
+ table::Table,
+ test_shared::{NAME, new_bob},
+ };
+ use anyhow::Result;
+
+ #[test]
+ pub fn insert_get() -> Result<()> {
+ let db = new_memory();
+ let table = Table::new(5);
+
+ let mut bob_row = 0;
+ db.write_transaction(&mut |txn| {
+ bob_row = table.insert(txn, new_bob())?;
+ Ok(())
+ })?;
+
+ let mut bob = None;
+ db.read_transaction(&mut |txn| {
+ bob = table.get(txn, bob_row)?;
+ Ok(())
+ })?;
+
+ assert_eq!(bob.unwrap().as_object().get(NAME).unwrap(), "Bob");
+ Ok(())
+ }
+
+ #[test]
+ pub fn update() -> Result<()> {
+ let db = new_memory();
+ let table = Table::new(5);
+
+ let mut bob_row = 0;
+ let mut bob = None;
+
+ db.write_transaction(&mut |txn| {
+ bob_row = table.insert(txn, new_bob())?;
+ Ok(())
+ })?;
+ db.write_transaction(&mut |txn| {
+ let better_bob = new_bob().as_object().insert(NAME, "Better Bob");
+ table.update(txn, bob_row, better_bob)?;
+ Ok(())
+ })?;
+ db.read_transaction(&mut |txn| {
+ bob = table.get(txn, bob_row)?;
+ Ok(())
+ })?;
+
+ assert_eq!(bob.unwrap().as_object().get(NAME).unwrap(), "Better Bob");
+ Ok(())
+ }
+}
diff --git a/database/src/tests.rs b/database/src/test_shared.rs
index dd4d1ae..fbd9501 100644
--- a/database/src/tests.rs
+++ b/database/src/test_shared.rs
@@ -4,14 +4,8 @@
Copyright (C) 2026 metamuffin <metamuffin.org>
*/
-use std::sync::LazyLock;
-
-use crate::{
- backends::{Database, new_memory},
- table::Table,
-};
-use anyhow::Result;
use jellyobject::{ObjectBuffer, Registry, fields};
+use std::sync::LazyLock;
pub static TAGREG: LazyLock<Registry> = LazyLock::new(|| {
let mut reg = Registry::default();
@@ -24,7 +18,7 @@ fields! {
FRIEND: &str = 54321 "friend";
}
-fn test_object() -> ObjectBuffer {
+pub(crate) fn new_bob() -> ObjectBuffer {
ObjectBuffer::new(&mut [
(NAME.0, &"Bob"),
(AGE.0, &35_u32),
@@ -32,26 +26,3 @@ fn test_object() -> ObjectBuffer {
(FRIEND.0, &"Charlie"),
])
}
-
-#[test]
-fn table_insert_get() -> Result<()> {
- let db = new_memory();
- let table = Table::new(5);
-
- let mut bob_row = 0;
- db.write_transaction(&mut |txn| {
- bob_row = table.insert(txn, test_object())?;
- Ok(())
- })?;
-
- let mut bob = None;
- db.read_transaction(&mut |txn| {
- bob = table.get(txn, bob_row)?;
- Ok(())
- })?;
-
- assert!(bob.is_some());
- assert_eq!(bob.unwrap().as_object().get(NAME).unwrap(), "Bob");
-
- Ok(())
-}