From 706eded24faff76361fb94b6e6f00d96fd2f12da Mon Sep 17 00:00:00 2001 From: EncodedVenom <32179912+EncodedVenom@users.noreply.github.com> Date: Mon, 8 Jul 2024 09:51:34 -0400 Subject: [PATCH] Add null query unit tests (#69) * Add null query unit test * Add unit test * Update unit tests * Remove __iter from already tested case --- tests/world.luau | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/tests/world.luau b/tests/world.luau index 178650a..bb33fa7 100644 --- a/tests/world.luau +++ b/tests/world.luau @@ -471,6 +471,47 @@ TEST("world", function() CHECK(world:get(e, B) == false) CHECK(world:get(e, C) == "hello world") end + + do CASE "should not iterate when nothing matches query" + local world = jecs.World.new() + local A = world:component() + local B = world:component() + + local e1 = world:entity() + world:add(e1, A) + + local count = 0 + for id in world:query(B) do + count += 1 + end + + CHECK(count == 0) + end + + do CASE "should return nothing for empty iteration" + local world = jecs.World.new() + local A = world:component() + local B = world:component() + + local e1 = world:entity() + world:add(e1, A) + + local query = world:query(B) + CHECK(query.next() == nil) + CHECK(query.replace() == nil) + end + + do CASE "should properly handle query:without for empty iteration" + local world = jecs.World.new() + local A = world:component() + local B = world:component() + + local e1 = world:entity() + world:add(e1, A) + + local query = world:query(B) + CHECK(query == query:without()) + end end) FINISH()