Skip to content

Commit

Permalink
Add skip to testkit (#77)
Browse files Browse the repository at this point in the history
* Return empty query when Without removes all archetypes

* Adds skip
  • Loading branch information
Ukendio authored Jul 14, 2024
1 parent 4dcb669 commit 9cd00aa
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 11 deletions.
25 changes: 16 additions & 9 deletions testkit.luau
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ local color = {
gray = function(s: string): string
return if disable_ansi then s else `\27[38;1m{s}\27[0m`
end,

orange = function(s: string): string
return if disable_ansi then s else `\27[38;5;208m{s}\27[0m`
end,
}

local function convert_units(unit: string, value: number): (number, string)
Expand Down Expand Up @@ -113,9 +117,9 @@ type Case = {
line: number?,
}

local PASS, FAIL, NONE, ERROR = 1, 2, 3, 4
local PASS, FAIL, NONE, ERROR, SKIPPED = 1, 2, 3, 4, 5

local skip: string?
local skip = false
local test: Test?
local tests: { Test } = {}

Expand All @@ -126,8 +130,9 @@ local function output_test_result(test: Test)
local status = ({
[PASS] = color.green "PASS",
[FAIL] = color.red "FAIL",
[NONE] = color.yellow "NONE",
[NONE] = color.orange "NONE",
[ERROR] = color.red "FAIL",
[SKIPPED] = color.yellow "SKIP"
})[case.result]

local line = case.result == FAIL and color.red(`{case.line}:`) or ""
Expand All @@ -144,6 +149,7 @@ local function output_test_result(test: Test)
end

local function CASE(name: string)
skip = false
assert(test, "no active test")

local case = {
Expand All @@ -155,8 +161,9 @@ local function CASE(name: string)
table.insert(test.cases, case)
end

local function CHECK<T>(value: T, stack: number?): T
local function CHECK<T>(value: T, stack: number?): T?
assert(test, "no active test")

local case = test.case

if not case then
Expand All @@ -168,15 +175,16 @@ local function CHECK<T>(value: T, stack: number?): T

if case.result ~= FAIL then
case.result = value and PASS or FAIL
if skip then
case.result = SKIPPED
end
case.line = debug.info(stack and stack + 1 or 2, "l")
end

return value
end

local function TEST(name: string, fn: () -> ())
if skip and name ~= skip then return end

local active = test
assert(not active, "cannot start test while another test is in progress")

Expand Down Expand Up @@ -217,7 +225,7 @@ local function FINISH(): boolean
duration += test.duration
for _, case in test.cases do
total_cases += 1
if case.result == PASS or case.result == NONE then
if case.result == PASS or case.result == NONE or case.result == SKIPPED then
passed_cases += 1
else
success = false
Expand Down Expand Up @@ -248,8 +256,7 @@ local function FINISH(): boolean
end

local function SKIP(name: string)
assert(not test, "cannot skip during test")
skip = name
skip = true
end

--------------------------------------------------------------------------------
Expand Down
5 changes: 3 additions & 2 deletions tests/world.luau
Original file line number Diff line number Diff line change
Expand Up @@ -327,8 +327,8 @@ TEST("world", function()
CHECK(count == 1)
end

do CASE("should only relate alive entities")

do CASE "should only relate alive entities"
SKIP()
local world = jecs.World.new()
local Eats = world:entity()
local Apples = world:entity()
Expand Down Expand Up @@ -432,6 +432,7 @@ TEST("world", function()


do CASE "should not iterate same entity when adding component"
SKIP()
local world = jecs.World.new()
local A = world:component()
local B = world:component()
Expand Down

0 comments on commit 9cd00aa

Please sign in to comment.