Software /
code /
prosody
File
spec/util_interpolation_spec.lua @ 13665:30a91d819913 13.0
mod_account_activity: Record an account's last activity timestamp
This is similar to mod_lastlog/mod_lastlog2.
Some functionality was dropped, compared to mod_lastlog2. These features
(recording the IP address, or tracking the timestamp of multiple events) are
handled better by the mod_audit family of modules. For example, those
correctly handle multiple logins, IP address truncation, and data retention
policies.
The "registered" timestamp from mod_lastlog2 was also dropped, as this has
been stored in account_details by Prosody itself since at least 0.12 already.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Wed, 12 Feb 2025 12:33:45 +0000 |
parent | 11308:5d4d90d1eabb |
line wrap: on
line source
local template = [[ {greet!?Hi}, {name?world}! ]]; local expect1 = [[ Hello, WORLD! ]]; local expect2 = [[ Hello, world! ]]; local expect3 = [[ Hi, YOU! ]]; local template_array = [[ {foo#{idx}. {item} }]] local expect_array = [[ 1. HELLO 2. WORLD ]] local template_func_pipe = [[ {foo|sort#{idx}. {item} }]] local expect_func_pipe = [[ 1. A 2. B 3. C 4. D ]] local template_map = [[ {foo%{idx}: {item!} }]] local expect_map = [[ FOO: bar ]] local template_not = [[ {thing~Thing is falsy}{thing&Thing is truthy} ]] local expect_not_true = [[ Thing is truthy ]] local expect_not_nil = [[ Thing is falsy ]] local expect_not_false = [[ Thing is falsy ]] describe("util.interpolation", function () it("renders", function () local render = require "util.interpolation".new("%b{}", string.upper, { sort = function (t) table.sort(t) return t end }); assert.equal(expect1, render(template, { greet = "Hello", name = "world" })); assert.equal(expect2, render(template, { greet = "Hello" })); assert.equal(expect3, render(template, { name = "you" })); assert.equal(expect_array, render(template_array, { foo = { "Hello", "World" } })); assert.equal(expect_func_pipe, render(template_func_pipe, { foo = { "c", "a", "d", "b", } })); -- assert.equal("", render(template_func_pipe, { foo = nil })); -- FIXME assert.equal(expect_map, render(template_map, { foo = { foo = "bar" } })); assert.equal(expect_not_true, render(template_not, { thing = true })); assert.equal(expect_not_nil, render(template_not, { thing = nil })); assert.equal(expect_not_false, render(template_not, { thing = false })); end); it("fixes #1623", function () local render = require "util.interpolation".new("%b{}", string.upper, { x = string.lower }); assert.equal("", render("{foo?}", { })) assert.equal("", render("{foo|x?}", { })) end); end);