aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorgpcf <gpcf@gpcf.eu>2024-09-22 16:14:10 +0200
committergpcf <gpcf@gpcf.eu>2024-09-22 16:14:10 +0200
commit07497d8957d1969af9b08ee35899609892438bc8 (patch)
tree47436232ea67b27119a931a5bd4cc056724e2a36 /spec
parent925b6f62e4ce62aa4c06ee2a3a444eebf5b5c307 (diff)
downloadatm-07497d8957d1969af9b08ee35899609892438bc8.tar.gz
atm-07497d8957d1969af9b08ee35899609892438bc8.tar.bz2
atm-07497d8957d1969af9b08ee35899609892438bc8.zip
Add chat command for welfare, add unit tests and mod.conf
Diffstat (limited to 'spec')
-rw-r--r--spec/welfare_spec.lua58
-rw-r--r--spec/welfare_spec.lua~19
2 files changed, 77 insertions, 0 deletions
diff --git a/spec/welfare_spec.lua b/spec/welfare_spec.lua
new file mode 100644
index 0000000..d41cf71
--- /dev/null
+++ b/spec/welfare_spec.lua
@@ -0,0 +1,58 @@
+require("mineunit")
+
+mineunit("core")
+
+mineunit("common/chatcommands")
+mineunit("server")
+mineunit("player")
+
+sourcefile("init")
+
+mineunit:mods_loaded()
+
+minetest.safe_file_write = function ()
+
+end
+
+describe("Welfare payout", function()
+ it("sets up balance correctly", function()
+ local newplayer = Player("newplayer")
+ mineunit:execute_on_joinplayer(newplayer)
+ atm.ensure_init("newplayer")
+ assert.equals(atm.balance["newplayer"], atm.startbalance)
+ end)
+ it("pays out welfare to players", function()
+ atm.ensure_init("newplayer")
+ local oldbalance = atm.balance["newplayer"]
+ atm.welfare_payout()
+ assert.equals(atm.balance["newplayer"], oldbalance + atm.welfare_amount)
+ assert.equals(atm.welfare["newplayer"], atm.welfare_cap - atm.welfare_amount)
+ end)
+ it("does not payout welfare if welfare cap is exhausted", function()
+ atm.ensure_init("newplayer")
+ local oldbalance = atm.balance["newplayer"]
+ atm.welfare["newplayer"] = atm.welfare_amount - 1
+ local oldwelfare = atm.welfare['newplayer']
+ atm.welfare_payout()
+ assert.equals(atm.balance["newplayer"], oldbalance)
+ assert.equals(atm.welfare["newplayer"], oldwelfare)
+ end)
+ it("allows moderators to put players on welfare", function()
+ local moderator = Player("admin", {kick = true, ban = true})
+ moderator:send_chat_message("/give_welfare newplayer 555")
+ assert.equals(atm.welfare["newplayer"], 555)
+ moderator:send_chat_message("/give_welfare newplayer bbbb")
+ assert.equals(atm.welfare["newplayer"], 555)
+ end)
+ it("bans normal players from giving themselves welfare", function()
+ local player = Player("foobar")
+ mineunit:execute_on_joinplayer(player)
+ atm.welfare_payout()
+ local oldwelfare = atm.welfare['foobar']
+ player:send_chat_message("/give_welfare foobar 555")
+ assert.equals(atm.welfare["foobar"], oldwelfare)
+ end)
+
+end
+)
+
diff --git a/spec/welfare_spec.lua~ b/spec/welfare_spec.lua~
new file mode 100644
index 0000000..dd04618
--- /dev/null
+++ b/spec/welfare_spec.lua~
@@ -0,0 +1,19 @@
+require("mineunit")
+
+mineunit("core")
+
+mineunit("common/chatcommands")
+mineunit("server")
+mineunit("player")
+
+sourcefile("init")
+
+mineunit:mods_loaded()
+
+
+describe("Welfare payout", function()
+ it("sets up balance correctly", function()
+ local newplayer = Player("newplayer")
+ mineunit:execute_on_joinplayer(newplayer)
+ assert.equals(atm.balance["newplayer"], atm.
+