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 )