diff options
| author | metamuffin <metamuffin@disroot.org> | 2026-01-18 03:56:25 +0100 |
|---|---|---|
| committer | metamuffin <metamuffin@disroot.org> | 2026-01-18 03:56:25 +0100 |
| commit | 901dff07ed357694eb35284a58c3cc6c003c53ce (patch) | |
| tree | f6716c35112d25d8e8c3ece0e2305a261f2066e2 /database/src/table.rs | |
| parent | 999249adc1120b1afa8f9d0015c31bea1980a7ee (diff) | |
| download | jellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar jellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar.bz2 jellything-901dff07ed357694eb35284a58c3cc6c003c53ce.tar.zst | |
move db tests; remove old imports
Diffstat (limited to 'database/src/table.rs')
| -rw-r--r-- | database/src/table.rs | 57 |
1 files changed, 57 insertions, 0 deletions
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(()) + } +} |