Yves-Marie Haussonne 3bc13b5c9f feat[player]: Save and restore player inventories during test
Save complete players inventories, and added unit tests on players
2024-10-02 19:59:39 +02:00

57 lines
2.7 KiB
Lua

local register_test = test_harness.get_test_registrator("test_harness")
local vec = vector.new
register_test("Tests utilities for players")
register_test("save_players", function()
local player1 = minetest.get_player_by_name("player1")
local itemstack = ItemStack("default:stone 30")
player1:get_inventory():add_item("main", itemstack)
local player_data = test_harness.save_players({"player1"})
assert(player_data ~= nil)
assert(player_data["player1"] ~= nil)
assert(player_data["player1"].position ~= nil)
assert(player_data["player1"].position == vec(0,0,0))
assert(player_data["player1"].privs ~= nil)
assert(player_data["player1"].inventory ~= nil)
assert(player_data["player1"].inventory.main ~= nil)
assert(#player_data["player1"].inventory.main > 0)
assert(player_data["player1"].inventory.main[1] ~= nil)
assert(player_data["player1"].inventory.main[1]:get_name() == "default:stone")
assert(player_data["player1"].inventory.main[1]:get_count() == 30)
end, { players={ "player1" },})
register_test("restore_players", function()
local player_data = { ["player1"] = {
position= vec(1,2,3),
privs= { ["noclip"] = true,["interact"] = true,["debug"] = true,["fly"] = true,["basic_debug"] = true, ["shout"] = true },
inventory= {
["craftpreview"] = { ItemStack("") },
["craftresult"] = { ItemStack(""),} ,
["main"] = { ItemStack("default:stone 30"), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""),} ,
["craft"] = { ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""), ItemStack(""),} ,
}
} }
local player1 = minetest.get_player_by_name("player1")
assert(not (player1:get_inventory():contains_item("main", "default:stone")))
assert(player1:get_pos() == vec(0,0,0))
assert(minetest.get_player_privs("player1")["fast"])
assert(not minetest.get_player_privs("player1")["shout"])
test_harness.restore_players(player_data)
assert(player1:get_inventory():contains_item("main", "default:stone"))
assert(player1:get_pos() == vec(1,2,3))
assert(minetest.get_player_privs("player1")["shout"])
assert(not minetest.get_player_privs("player1")["fast"])
end, { players={ "player1" },})