Software /
code /
prosody
Comparison
spec/core_storagemanager_spec.lua @ 10927:470602a8b633
storage tests: Add tests for archive queries before/after specific ids
Also increased the size of the test data for easier debugging with more
complex tests.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 12 Jun 2020 16:59:06 +0100 |
parent | 10842:5a6ba2f38e2b |
child | 11273:9f1355689648 |
comparison
equal
deleted
inserted
replaced
10926:c55bd98a54f8 | 10927:470602a8b633 |
---|---|
213 local test_data = { | 213 local test_data = { |
214 { nil, test_stanza, test_time, "contact@example.com" }; | 214 { nil, test_stanza, test_time, "contact@example.com" }; |
215 { nil, test_stanza, test_time+1, "contact2@example.com" }; | 215 { nil, test_stanza, test_time+1, "contact2@example.com" }; |
216 { nil, test_stanza, test_time+2, "contact2@example.com" }; | 216 { nil, test_stanza, test_time+2, "contact2@example.com" }; |
217 { nil, test_stanza, test_time-1, "contact2@example.com" }; | 217 { nil, test_stanza, test_time-1, "contact2@example.com" }; |
218 { nil, test_stanza, test_time-1, "contact3@example.com" }; | |
219 { nil, test_stanza, test_time+0, "contact3@example.com" }; | |
220 { nil, test_stanza, test_time+1, "contact3@example.com" }; | |
218 }; | 221 }; |
219 | 222 |
220 it("can be added to", function () | 223 it("can be added to", function () |
221 for _, data_item in ipairs(test_data) do | 224 for _, data_item in ipairs(test_data) do |
222 local ok = archive:append("user", unpack(data_item, 1, 4)); | 225 local id = archive:append("user", unpack(data_item, 1, 4)); |
223 assert.truthy(ok); | 226 assert.truthy(id); |
227 data_item[1] = id; | |
224 end | 228 end |
225 end); | 229 end); |
226 | 230 |
227 describe("can be queried", function () | 231 describe("can be queried", function () |
228 it("for all items", function () | 232 it("for all items", function () |
275 assert.equal("test", item.name); | 279 assert.equal("test", item.name); |
276 assert.equal("urn:example:foo", item.attr.xmlns); | 280 assert.equal("urn:example:foo", item.attr.xmlns); |
277 assert.equal(2, #item.tags); | 281 assert.equal(2, #item.tags); |
278 assert(test_time >= when); | 282 assert(test_time >= when); |
279 end | 283 end |
280 assert.equal(2, count); | 284 assert.equal(4, count); |
281 end); | 285 end); |
282 | 286 |
283 it("by time (start)", function () | 287 it("by time (start)", function () |
284 -- luacheck: ignore 211/err | 288 -- luacheck: ignore 211/err |
285 local data, err = archive:find("user", { | 289 local data, err = archive:find("user", { |
294 assert.equal("test", item.name); | 298 assert.equal("test", item.name); |
295 assert.equal("urn:example:foo", item.attr.xmlns); | 299 assert.equal("urn:example:foo", item.attr.xmlns); |
296 assert.equal(2, #item.tags); | 300 assert.equal(2, #item.tags); |
297 assert(test_time <= when); | 301 assert(test_time <= when); |
298 end | 302 end |
299 assert.equal(#test_data -1, count); | 303 assert.equal(#test_data - 2, count); |
300 end); | 304 end); |
301 | 305 |
302 it("by time (start+end)", function () | 306 it("by time (start+end)", function () |
303 -- luacheck: ignore 211/err | 307 -- luacheck: ignore 211/err |
304 local data, err = archive:find("user", { | 308 local data, err = archive:find("user", { |
315 assert.equal("urn:example:foo", item.attr.xmlns); | 319 assert.equal("urn:example:foo", item.attr.xmlns); |
316 assert.equal(2, #item.tags); | 320 assert.equal(2, #item.tags); |
317 assert(when >= test_time, ("%d >= %d"):format(when, test_time)); | 321 assert(when >= test_time, ("%d >= %d"):format(when, test_time)); |
318 assert(when <= test_time+1, ("%d <= %d"):format(when, test_time+1)); | 322 assert(when <= test_time+1, ("%d <= %d"):format(when, test_time+1)); |
319 end | 323 end |
320 assert.equal(2, count); | 324 assert.equal(4, count); |
325 end); | |
326 | |
327 it("by id (after)", function () | |
328 -- luacheck: ignore 211/err | |
329 local data, err = archive:find("user", { | |
330 ["after"] = test_data[2][1]; | |
331 }); | |
332 assert.truthy(data); | |
333 local count = 0; | |
334 for id, item in data do | |
335 count = count + 1; | |
336 assert.truthy(id); | |
337 assert.equal(test_data[2+count][1], id); | |
338 assert(st.is_stanza(item)); | |
339 assert.equal("test", item.name); | |
340 assert.equal("urn:example:foo", item.attr.xmlns); | |
341 assert.equal(2, #item.tags); | |
342 end | |
343 assert.equal(5, count); | |
344 end); | |
345 | |
346 it("by id (before)", function () | |
347 -- luacheck: ignore 211/err | |
348 local data, err = archive:find("user", { | |
349 ["before"] = test_data[4][1]; | |
350 }); | |
351 assert.truthy(data); | |
352 local count = 0; | |
353 for id, item in data do | |
354 count = count + 1; | |
355 assert.truthy(id); | |
356 assert.equal(test_data[count][1], id); | |
357 assert(st.is_stanza(item)); | |
358 assert.equal("test", item.name); | |
359 assert.equal("urn:example:foo", item.attr.xmlns); | |
360 assert.equal(2, #item.tags); | |
361 end | |
362 assert.equal(3, count); | |
321 end); | 363 end); |
322 end); | 364 end); |
323 | 365 |
324 it("can selectively delete items", function () | 366 it("can selectively delete items", function () |
325 local delete_id; | 367 local delete_id; |