Software / code / prosody-modules
File
mod_auth_token/mock.lua @ 6296:1661f6a74141
Multible community modules: Update Readme
diff --git a/mod_admin_blocklist/README.md b/mod_admin_blocklist/README.md
--- a/mod_admin_blocklist/README.md
+++ b/mod_admin_blocklist/README.md
@@ -24,8 +24,9 @@ admin_blocklist_roles = { "prosody:opera
# Compatibility
Prosody-Version Status
- --------------- ------
- trunk* Works
- 0.12 Works
+ -------------- ------
+ trunk* Works
+ 13 Works
+ 0.12 Works
-*as of 2024-12-21
+ *as of 2025-06-13
diff --git a/mod_audit/README.md b/mod_audit/README.md
--- a/mod_audit/README.md
+++ b/mod_audit/README.md
@@ -52,6 +52,7 @@ prosodyctl mod_audit user@example.com
# Compatibilty
-Requires Prosody **trunk** as of 2025-02-11.
-
-Does not work with Prosody 0.12 or earlier.
+ Prosody-Version Status
+ ----- ------
+ 13 Works
+ 0.12 Does not work
diff --git a/mod_csi_grace_period/README.md b/mod_csi_grace_period/README.md
--- a/mod_csi_grace_period/README.md
+++ b/mod_csi_grace_period/README.md
@@ -16,9 +16,9 @@ pocket is not the best use of radio time
Works with [mod_csi_simple][doc:modules:mod_csi_simple] which is
included with Prosody.
- ------- --------------
- trunk* Works
- 0.12 Works
- ------- --------------
+ ------- -------
+ trunk* Works
+ 13 Works
+ 0.12 Works
-*as of 2024-10-22
+ *as of 2025-06-13
diff --git a/mod_http_upload_external/README.md b/mod_http_upload_external/README.md
--- a/mod_http_upload_external/README.md
+++ b/mod_http_upload_external/README.md
@@ -19,7 +19,6 @@ Implementations
* [PHP implementation](https://hg.prosody.im/prosody-modules/raw-file/tip/mod_http_upload_external/share.php)
* [Python3+Flask implementation](https://github.com/horazont/xmpp-http-upload)
* [Go implementation, Prosody Filer](https://github.com/ThomasLeister/prosody-filer)
-* [Go implementation, HMAC File Server](https://github.com/PlusOne/hmac-file-server)
* [Perl implementation for nginx](https://github.com/weiss/ngx_http_upload)
* [Rust implementation](https://gitlab.com/nyovaya/xmpp-http-upload)
@@ -88,9 +87,10 @@ Compatibility
=============
Prosody-Version Status
- ---------------- --------------------
- trunk Works as of 24-12-12
- 0.12 Works
+ ---------------- --------------------
+ trunk Works as of 25-06-13
+ 13 Works
+ 0.12 Works
Implementation
==============
diff --git a/mod_muc_moderation/README.md b/mod_muc_moderation/README.md
--- a/mod_muc_moderation/README.md
+++ b/mod_muc_moderation/README.md
@@ -27,10 +27,11 @@ modules_enabled = {
# Compatibility
- ------- ---------------
- trunk Works^[as of 2024-10-22]
- 0.12 Works
- ------- ---------------
+ ------- ---------------
+ trunk Works^[as of 2025-06-13]
+ 13 Works
+ 0.12 Works
+ ------- ---------------
## XEP version
diff --git a/mod_s2s_idle_timeout/README.md b/mod_s2s_idle_timeout/README.md
--- a/mod_s2s_idle_timeout/README.md
+++ b/mod_s2s_idle_timeout/README.md
@@ -25,9 +25,10 @@ Compatibility
=============
Prosody Version Status
- ----------------- -----------
- trunk[^1] Works
- 0.12 Works
- ----------------- -----------
+ ----------------- -----------
+ trunk[^1] Works
+ 13 Works
+ 0.12 Works
+ ----------------- -----------
-[^1]: as of 2024-10-22
+[^1]: as of 2025-06-13
diff --git a/mod_s2s_keepalive/README.md b/mod_s2s_keepalive/README.md
--- a/mod_s2s_keepalive/README.md
+++ b/mod_s2s_keepalive/README.md
@@ -34,9 +34,10 @@ Compatibility
=============
Prosody Version Status
- ----------------- -----------
- trunk[^1] Works
- 0.12 Works
- ----------------- -----------
+ ----------------- -----------
+ trunk[^1] Works
+ 13 Works
+ 0.12 Works
+ ----------------- -----------
-[^1]: as of 2024-11-11
+[^1]: as of 2025-06-13
| author | Menel <menel@snikket.de> |
|---|---|
| date | Fri, 13 Jun 2025 09:53:41 +0200 |
| parent | 2956:d0ca211e1b0e |
line wrap: on
line source
-- Source code taken from https://github.com/britzl/deftest -- Released under the MIT License. Copyright (c) 2009-2012 Norman Clarke. --- Provides the ability to mock any module. -- @usage -- -- mock.mock(sys) -- -- -- specifying return values -- sys.get_sys_info.returns({my_data}) -- ... -- local sys_info = sys.get_sys_info() -- will be my_data -- assert(sys.get_sys_info.calls == 1) -- call counting -- ... -- local sys_info = sys.get_sys_info() -- original response as we are now out of mocked answers -- assert(sys.get_sys_info.calls == 2) -- call counting -- ... -- -- -- specifying a replacement function -- sys.get_sys_info.replace(function () return my_data end) -- -- ... -- local sys_info = sys.get_sys_info() -- will be my_data -- assert(sys.get_sys_info.calls == 3) -- call counting -- ... -- local sys_info = sys.get_sys_info() -- will still be my_data -- assert(sys.get_sys_info.calls == 4) -- call counting -- ... -- -- -- cleaning up -- mock.unmock(sys) -- restore the sys library again local mock = {} --- Mock the specified module. -- Mocking the module extends the functions it contains with the ability to have their logic overridden. -- @param module module to mock -- @usage -- -- -- mock module x -- mock.mock(x) -- -- -- make x.f return 1, 2 then the original value -- x.f.returns({1, 2}) -- print(x.f()) -- prints 1 -- -- -- make x.f return 1 forever -- x.f.replace(function () return 1 end) -- while true do print(x.f()) end -- prints 1 forever -- -- -- counting calls -- assert(x.f.calls > 0) -- -- -- return to original state of module x -- mock.unmock(x) -- function mock.mock(module) assert(module, "You must provide a module to mock") for k,v in pairs(module) do if type(v) == "function" then local mock_fn = { calls = 0, answers = {}, repl_fn = nil, orig_fn = v, params = {} } function mock_fn.returns(...) local arg_length = select("#", ...) assert(arg_length > 0, "You must provide some answers") local args = { ... } if arg_length == 1 then mock_fn.answers = args[1] else mock_fn.answers = args end end function mock_fn.always_returns(answer) mock_fn.repl_fn = function() return answer end end function mock_fn.replace(repl_fn) mock_fn.repl_fn = repl_fn end function mock_fn.original(...) return mock_fn.orig_fn(...) end function mock_fn.restore() mock_fn.repl_fn = nil end local mt = { __call = function (mock_fn, ...) mock_fn.calls = mock_fn.calls + 1 local arg = {...} if #arg > 0 then for i=1,#arg do mock_fn.params[i] = arg[i] end end if mock_fn.answers[1] then local result = mock_fn.answers[1] table.remove(mock_fn.answers, 1) return result elseif mock_fn.repl_fn then return mock_fn.repl_fn(...) else return v(...) end end } setmetatable(mock_fn, mt) module[k] = mock_fn end end end --- Remove the mocking capabilities from a module. -- @param module module to remove mocking from function mock.unmock(module) assert(module, "You must provide a module to unmock") for k,v in pairs(module) do if type(v) == "table" then if v.orig_fn then module[k] = v.orig_fn end end end end return mock