Complement testcases

This commit is contained in:
y5nw 2024-03-22 20:42:54 +01:00
parent e9d60b0013
commit c528895bfe

View file

@ -7,6 +7,12 @@ mail.register_recipient_handler(function(_, name)
return false, "It works (?)" return false, "It works (?)"
end end
end) end)
mail.update_maillist("player1", {
owner = "player1",
name = "recursive",
desc = "",
players = {"@recursive", "player1"},
}, "recursive")
local received_count = {} local received_count = {}
mail.register_on_player_receive(function(player) mail.register_on_player_receive(function(player)
@ -27,30 +33,44 @@ local function assert_inbox_count(player_name, count)
assert(player_received == count, ("incorrect receive count: %d expected, got %d"):format(count, player_received)) assert(player_received == count, ("incorrect receive count: %d expected, got %d"):format(count, player_received))
end end
local function assert_send(expected_success, ...)
local success, err = mail.send(...)
if expected_success then
assert(success, ("expected mail to be sent, got error message: %s"):format(err))
assert(not err, ("unexpected message after sending mail: %s"):format(err))
else
assert(not success, "expected mail to be rejected, mail was sent")
assert(type(err) == "string", ("expected error message, got datum of type %s"):format(type(err)))
end
end
mtt.register("send mail", function(callback) mtt.register("send mail", function(callback)
-- send a mail to a list -- local maillists
local success, err = mail.send({from = "player1", to = "list/test", subject = "something", body = "blah"}) assert_send(true, {from = "player1", to = "@recursive", subject = "hello recursion", body = "blah"})
assert(success) assert_inbox_count("player1", 1)
assert(not err)
assert_inbox_count("player2", 1)
assert_inbox_count("player1", 0)
assert(sent_count == 1) assert(sent_count == 1)
-- send a second mail to the list and also the sender -- do not allow empty recipients
success, err = mail.send({from = "player1", to = "list/test, alias/player1", subject = "something", body = "blah"}) assert_send(false, {from = "player1", to = "@doesnotexist", subject = "should not be sent", body = "blah"})
assert(success) assert(sent_count == 1)
assert(not err)
assert_inbox_count("player2", 2) -- send a mail to a list
assert_send(true, {from = "player1", to = "list/test", subject = "something", body = "blah"})
assert_inbox_count("player2", 1)
assert_inbox_count("player1", 1) assert_inbox_count("player1", 1)
assert(sent_count == 2) assert(sent_count == 2)
-- send a mail to list/reject - the mail should be rejected -- send a second mail to the list and also the sender
success, err = mail.send({from = "player1", to = "list/reject", subject = "something", body = "NO"}) assert_send(true, {from = "player1", to = "list/test, alias/player1", subject = "something", body = "blah"})
assert(not success)
assert(type(err) == "string")
assert_inbox_count("player2", 2) assert_inbox_count("player2", 2)
assert_inbox_count("player1", 1) assert_inbox_count("player1", 2)
assert(sent_count == 2) assert(sent_count == 3)
-- send a mail to list/reject - the mail should be rejected
assert_send(false, {from = "player1", to = "list/reject", subject = "something", body = "NO"})
assert_inbox_count("player2", 2)
assert_inbox_count("player1", 2)
assert(sent_count == 3)
callback() callback()
end) end)