Software /
code /
prosody
Changeset
13402:6877786d73d7
mod_storage_internal, tests: Fix before/after combined with the 'reverse' flag
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Tue, 12 Dec 2023 13:41:14 +0000 |
parents | 13401:626ab0af83af |
children | 13403:0369f6986824 |
files | plugins/mod_storage_internal.lua spec/core_storagemanager_spec.lua |
diffstat | 2 files changed, 25 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/plugins/mod_storage_internal.lua Sat Dec 09 21:01:49 2023 +0100 +++ b/plugins/mod_storage_internal.lua Tue Dec 12 13:41:14 2023 +0000 @@ -180,6 +180,7 @@ i = i - 1 return list[i] end + query.before, query.after = query.after, query.before; end if query.key then iter = it.filter(function(item)
--- a/spec/core_storagemanager_spec.lua Sat Dec 09 21:01:49 2023 +0100 +++ b/spec/core_storagemanager_spec.lua Tue Dec 12 13:41:14 2023 +0000 @@ -560,6 +560,30 @@ end); + -- This tests combines the reverse flag with 'before' and 'after' to + -- ensure behaviour remains correct + it("by id (before and after) in reverse #full_id_range", function () + assert.truthy(archive.caps and archive.caps.full_id_range, "full ID range support") + local data, err = archive:find("user", { + ["after"] = test_data[1][1]; + ["before"] = test_data[4][1]; + reverse = true; + }); + assert.truthy(data, err); + local count = 0; + for id, item in data do + count = count + 1; + assert.truthy(id); + assert.equal(test_data[4-count][1], id); + assert(st.is_stanza(item)); + assert.equal("test", item.name); + assert.equal("urn:example:foo", item.attr.xmlns); + assert.equal(2, #item.tags); + end + assert.equal(2, count); + end); + + end);