From 52173903e17625c44c108b4ca2e7bc22f3b76465 Mon Sep 17 00:00:00 2001 From: gpcf Date: Sun, 28 Jul 2024 11:58:39 +0200 Subject: Add unit tests --- spec/afk_spec.lua | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 spec/afk_spec.lua (limited to 'spec/afk_spec.lua') diff --git a/spec/afk_spec.lua b/spec/afk_spec.lua new file mode 100644 index 0000000..fb63339 --- /dev/null +++ b/spec/afk_spec.lua @@ -0,0 +1,63 @@ +require("mineunit") + +mineunit("core") + +mineunit("common/chatcommands") +mineunit("server") +mineunit("player") +mineunit("settings") +mineunit("auth") + +sourcefile("init") + +mineunit:mods_loaded() + +local exists = minetest.player_exists +local settings = core.settings +describe("Afk works", function() + local admin = Player("admin", {kick = true, ban = true}) + setup(function() + minetest.check_password_entry = function() + return false + end + mineunit:execute_on_joinplayer(admin) + end) + it("Sets afk status correctly", function () + admin:send_chat_message('/mod_afk on') + assert.equals(xban.present["admin"],nil) + admin:send_chat_message('/mod_afk off') + assert.equals(xban.present["admin"],true) + end) + it("Allows new players to join by default", function() + minetest.player_exists = function() + return false + end + local newplayer = Player("newplayer") + mineunit:execute_on_joinplayer(newplayer) + assert.is_true(newplayer._online) + end) + it("Rejects players if no moderator is active", function() + local newplayer = Player("newplayer2") + xban.present = {} + minetest.settings = Settings("moderate.conf") + mineunit:execute_on_joinplayer(newplayer) + assert.is_not_true(newplayer._online) + end) + it("Allows a new player if there is an online moderator", function () + local newplayer = Player("newplayer3") + admin:send_chat_message('/mod_afk off') + mineunit:execute_on_joinplayer(newplayer) + assert.is_true(newplayer._online) + end) + it("Bans passwordless accounts and allows accounts with password", function () + local newplayer = Player("newplayer3") + mineunit:execute_on_joinplayer(newplayer) + assert.is_true(newplayer._online) + minetest.check_password_entry = function() + return true + end + local newplayer2 = Player("newplayer4") + mineunit:execute_on_joinplayer(admin) + assert.is_false(newplayer2._online) + end) +end) -- cgit v1.2.3