diff options
Diffstat (limited to 'spec/afk_spec.lua')
-rw-r--r-- | spec/afk_spec.lua | 63 |
1 files changed, 63 insertions, 0 deletions
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) |