annotate spec/util_time_spec.lua @ 13903:4af7d00a2966

MUC: occupant: refactor to allow storing more than just presence for a session Previously a "session" (i.e. a full JID joined to a MUC) was stored as simply a mapping of full JIDs->presence, contained within occupant objects (an occupant object groups all sessions behind a certain nick in the MUC). To enable developing GC3 and other features, it would be helpful if we can store additional metadata when a client joins a room, for example, whether it has opted out of receiving presence stanzas (a GC3 feature). This changes the internal data structure, which shouldn't be used outside this module, it adds a new :get_session() method, and modifies the :each_session() iterator to return the session as an additional result (which should be backwards compatible with code that just consumes the existing two results).
author Matthew Wild <mwild1@gmail.com>
date Mon, 11 Nov 2024 12:47:01 +0000
parents aba99b6539f5
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9193
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 describe("util.time", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local time;
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 setup(function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 time = require "util.time";
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 describe("now()", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 it("exists", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 assert.is_function(time.now);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 it("returns a number", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 assert.is_number(time.now());
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 describe("monotonic()", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 it("exists", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 assert.is_function(time.monotonic);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 it("returns a number", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 assert.is_number(time.monotonic());
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 it("time goes in one direction", function ()
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 local a = time.monotonic();
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23 local b = time.monotonic();
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 assert.truthy(a <= b);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 end);
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30
aba99b6539f5 util.time: Add brief tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31