mirror of
https://github.com/luanti-org/luanti.git
synced 2025-08-01 17:38:41 +00:00
Fix node callbacks unit test
This commit is contained in:
parent
9b97147637
commit
91ea47fddf
3 changed files with 22 additions and 13 deletions
|
@ -108,9 +108,9 @@ local function wait_for_player(callback)
|
|||
end)
|
||||
end
|
||||
|
||||
local function wait_for_map(player, callback)
|
||||
local function wait_for_map(pos, callback)
|
||||
local function check()
|
||||
if core.get_node_or_nil(player:get_pos()) ~= nil then
|
||||
if core.get_node(pos).name ~= "ignore" then
|
||||
callback()
|
||||
else
|
||||
core.after(0, check)
|
||||
|
@ -119,8 +119,8 @@ local function wait_for_map(player, callback)
|
|||
check()
|
||||
end
|
||||
|
||||
-- This runs in a coroutine so it uses await()
|
||||
function unittests.run_all()
|
||||
-- This runs in a coroutine so it uses await().
|
||||
local counters = { time = 0, total = 0, passed = 0 }
|
||||
|
||||
-- Run standalone tests first
|
||||
|
@ -143,10 +143,11 @@ function unittests.run_all()
|
|||
end
|
||||
|
||||
-- Wait for the world to generate/load, run tests that require map access
|
||||
local pos = player:get_pos():round():offset(0, 5, 0)
|
||||
core.forceload_block(pos, true, -1)
|
||||
await(function(cb)
|
||||
wait_for_map(player, cb)
|
||||
wait_for_map(pos, cb)
|
||||
end)
|
||||
local pos = vector.round(player:get_pos())
|
||||
for idx = 1, #unittests.list do
|
||||
local def = unittests.list[idx]
|
||||
if not def.done then
|
||||
|
|
|
@ -99,17 +99,24 @@ local function test_clear_meta(_, pos)
|
|||
end
|
||||
unittests.register("test_clear_meta", test_clear_meta, {map=true})
|
||||
|
||||
local on_punch_called
|
||||
minetest.register_on_punchnode(function()
|
||||
local on_punch_called, on_place_called
|
||||
core.register_on_placenode(function()
|
||||
on_place_called = true
|
||||
end)
|
||||
core.register_on_punchnode(function()
|
||||
on_punch_called = true
|
||||
end)
|
||||
unittests.register("test_punch_node", function(_, pos)
|
||||
minetest.place_node(pos, {name="basenodes:dirt"})
|
||||
local function test_node_callbacks(_, pos)
|
||||
on_place_called = false
|
||||
on_punch_called = false
|
||||
minetest.punch_node(pos)
|
||||
minetest.remove_node(pos)
|
||||
-- currently failing: assert(on_punch_called)
|
||||
end, {map=true})
|
||||
|
||||
core.place_node(pos, {name="basenodes:dirt"})
|
||||
assert(on_place_called, "on_place not called")
|
||||
core.punch_node(pos)
|
||||
assert(on_punch_called, "on_punch not called")
|
||||
core.remove_node(pos)
|
||||
end
|
||||
unittests.register("test_node_callbacks", test_node_callbacks, {map=true})
|
||||
|
||||
local function test_hashing()
|
||||
local input = "hello\000world"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue