From c692b6ee79b58082a87019eb2a7773880a3dd01a Mon Sep 17 00:00:00 2001 From: y5nw <37980625+y5nw@users.noreply.github.com> Date: Sun, 21 Jan 2024 18:41:42 +0100 Subject: [PATCH] Complement test --- api.spec.lua | 43 +++++++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/api.spec.lua b/api.spec.lua index a9f9d2f..00e2cb8 100644 --- a/api.spec.lua +++ b/api.spec.lua @@ -1,12 +1,43 @@ +mtt.register("register non-player-recipients", function(callback) + mail.register_recipient_handler(function(sender, name) + if name:sub(1, 6) == "alias/" then + return true, name:sub(7) + elseif name == "list/test" then + return true, {"alias/player1", "alias/player2"} + elseif name == "list/reject" then + return false, "It works (?)" + end + end) +end + +local function assert_inbox_count(player_name, count) + local entry == mail.get_storage_entry(player_name) + assert(entry, player_name .. " has no mail entry") + local actual_count = #entry.inbox + assert(actual_count == count, ("incorrect mail count: %d expected, got %d"):format(count, actual_count)) +end + mtt.register("send mail", function(callback) - -- send a mail - local success, err = mail.send({from = "player1", to = "player2", subject = "something", body = "blah"}) + -- send a mail to a list + local success, err = mail.send({from = "player1", to = "list/test", subject = "something", body = "blah"}) assert(success) assert(not err) + assert_inbox_count("player2", 1) + assert_inbox_count("player1", 0) + + -- send a second mail to the list and also the sender + success, err = mail.send({from = "player1", to = "list/test, alias/player1", subject = "something", body = "blah"}) + assert(success) + assert(not err) + assert_inbox_count("player2", 2) + assert_inbox_count("player1", 1) + + -- send a mail to list/reject - the mail should be rejected + success, err = mail.send({from = "player1", to = "list/reject", subject = "something", body = "NO"}) + assert(not success) + assert(type(err) == "string") + assert_inbox_count("player2", 2) + assert_inbox_count("player1", 1) - -- check the receivers inbox - local entry = mail.get_storage_entry("player2") - assert(entry) - assert(#entry.inbox > 0) callback() end)