about summary refs log tree commit diff
path: root/kittybox-rs/src/database/mod.rs
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2023-06-22 22:34:00 +0300
committerVika <vika@fireburn.ru>2023-06-22 22:34:00 +0300
commit37fa8a2043233c7e96422f46a4c7200f20a9cb0f (patch)
treeec2c3aaecda013800feb13b351ce3b57edd60714 /kittybox-rs/src/database/mod.rs
parentbf499c9351cdfa88002cc7eaf2f695b0683efa5b (diff)
downloadkittybox-37fa8a2043233c7e96422f46a4c7200f20a9cb0f.tar.zst
database: more realistic pagination test
We insert published time into all objects anyway, and expect feeds to
be ordered by publishing time. We should let databases rely on that
assumption when returning feeds.
Diffstat (limited to 'kittybox-rs/src/database/mod.rs')
-rw-r--r--kittybox-rs/src/database/mod.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/kittybox-rs/src/database/mod.rs b/kittybox-rs/src/database/mod.rs
index cb4c0b9..94a93ca 100644
--- a/kittybox-rs/src/database/mod.rs
+++ b/kittybox-rs/src/database/mod.rs
@@ -543,12 +543,14 @@ mod tests {
             rand::random::<Word>()
         );
 
+        let time = chrono::Local::now().to_rfc3339();
         let post = json!({
             "type": ["h-entry"],
             "properties": {
                 "content": [rand::random::<Paragraphs>().to_string()],
                 "uid": [&uid],
-                "url": [&uid]
+                "url": [&uid],
+                "published": [&time]
             }
         });
 
@@ -558,6 +560,9 @@ mod tests {
     async fn test_feed_pagination<Backend: Storage>(backend: Backend) {
         let posts = std::iter::from_fn(|| Some(gen_random_post("fireburn.ru")))
             .take(20)
+            .collect::<Vec<serde_json::Value>>()
+            .into_iter()
+            .rev()
             .collect::<Vec<serde_json::Value>>();
 
         let feed = json!({
@@ -596,6 +601,7 @@ mod tests {
             println!("feed[0][{}] = {}", i, post["properties"]["uid"][0]);
         }
         println!("---");
+        assert!(result["children"].as_array().unwrap().len() <= limit);
         assert_eq!(result["children"].as_array().unwrap()[0..10], posts[0..10]);
 
         let result2 = backend