aboutsummaryrefslogtreecommitdiff
path: root/spec/afk_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'spec/afk_spec.lua')
-rw-r--r--spec/afk_spec.lua63
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)