Mercurial > prosody-hg
view spec/util_uuid_spec.lua @ 13940:5f8a9e50c2fb 13.0
mod_smacks: Remove extra optional from sm element
Since XEP-0198 version 1.6.3, the optional and required children of sm in
stream:features have been removed entirely. They already weren’t specified
before, and were only leftover from a very old version in the XML Schema.
Fixes #1963
| author | Link Mauve <linkmauve@linkmauve.fr> |
|---|---|
| date | Tue, 02 Sep 2025 00:50:25 +0200 |
| parents | e6a5f196fc1f |
| children |
line wrap: on
line source
-- This tests the format, not the randomness local uuid = require "util.uuid"; describe("util.uuid", function() describe("#generate()", function() it("should work follow the UUID pattern", function() -- https://www.rfc-editor.org/rfc/rfc4122.html#section-4.4 local pattern = "^" .. table.concat({ string.rep("%x", 8), string.rep("%x", 4), "4" .. -- version string.rep("%x", 3), "[89ab]" .. -- reserved bits of 1 and 0 string.rep("%x", 3), string.rep("%x", 12), }, "%-") .. "$"; for _ = 1, 100 do assert.is_string(uuid.generate():match(pattern)); end assert.truthy(uuid.generate() ~= uuid.generate(), "does not generate the same UUIDv4 twice") end); end); describe("#v7", function() it("should also follow the UUID pattern", function() local pattern = "^" .. table.concat({ string.rep("%x", 8), string.rep("%x", 4), "7" .. -- version string.rep("%x", 3), "[89ab]" .. -- reserved bits of 1 and 0 string.rep("%x", 3), string.rep("%x", 12), }, "%-") .. "$"; local one = uuid.v7(); -- one before the loop to ensure some time passes for _ = 1, 100 do assert.is_string(uuid.v7():match(pattern)); end -- one after the loop when some time should have passed assert.truthy(one < uuid.v7(), "should be ordererd") end); end); end);
