storage tests: Add test for the archive:summary API 0.12
authorKim Alvefur <zash@zash.se>
Fri, 22 Jul 2022 18:32:45 +0200
branch0.12
changeset 12602 a2624315d30e
parent 12601 ba05f7e5f2a2
child 12603 5aafcf6a0730
storage tests: Add test for the archive:summary API Passes with memory, internal, sqlite Fails with postgres as in #1766
spec/core_storagemanager_spec.lua
--- a/spec/core_storagemanager_spec.lua	Sun Jul 17 17:05:28 2022 +0200
+++ b/spec/core_storagemanager_spec.lua	Fri Jul 22 18:32:45 2022 +0200
@@ -575,6 +575,23 @@
 					end
 				end);
 
+				it("the summary api works", function()
+					assert.truthy(archive:delete("summary-user"));
+					local first_sid = archive:append("summary-user", nil, test_stanza, test_time, "contact@example.com");
+					local second_sid = archive:append("summary-user", nil, test_stanza, test_time+1, "contact@example.com");
+					assert.truthy(first_sid and second_sid, "preparations failed")
+					---
+
+					local user_summary, err = archive:summary("summary-user");
+					assert.is_table(user_summary, err);
+					assert.same({ ["contact@example.com"] = 2 }, user_summary.counts, "summary.counts matches");
+					assert.same({ ["contact@example.com"] = test_time }, user_summary.earliest, "summary.earliest matches");
+					assert.same({ ["contact@example.com"] = test_time+1 }, user_summary.latest, "summary.latest matches");
+					if user_summary.body then
+						assert.same({ ["contact@example.com"] = test_stanza:get_child_text("body") }, user_summary.body, "summary.body matches");
+					end
+				end);
+
 			end);
 		end);
 	end