added ability to skip test from the stats...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2025-12-31 01:00:16 +03:00
parent b81a214172
commit e822179b10
2 changed files with 15 additions and 5 deletions

View File

@ -1,6 +1,6 @@
{
"name": "ig-test",
"version": "1.6.4",
"version": "1.6.5",
"description": "experimental test runner....",
"main": "test.js",
"bin": {

18
test.js
View File

@ -569,13 +569,15 @@ function(spec, chain, mod_chain_length=1){
//
//
// This will run
// test(modifier(setup))
// test(assert, modifier(setup), skipTest)
// for each test in spec.tests
// for each modifier in spec.modifiers
// for each setup in spec.setups
// case()
// case(assert, skipTest)
// for each case in spec.cases
//
// Calling skipTest() will remove current test from the stats.
//
//
var runTests =
module.runTests =
@ -591,6 +593,14 @@ async function(spec, chain, stats, mod_chain_length=1, assert){
time: stats.time || 0,
})
var makeSkipTest = function(){
var ran = false
return function(){
if(ran){
return }
ran = true
stats.tests-- } }
var started = Date.now()
var queue = buildQueue(spec, chain, mod_chain_length)
@ -613,7 +623,7 @@ async function(spec, chain, stats, mod_chain_length=1, assert){
var d = await setups[s](_assert)
for(var mod of m){
d = await modifiers[mod](_assert, d) }
await tests[t](_assert, d) }
await tests[t](_assert, d, makeSkipTest()) }
// cases...
var case_assert = assert == null ?
@ -622,7 +632,7 @@ async function(spec, chain, stats, mod_chain_length=1, assert){
: assert.push('[CASE]')
for(var c of queue.cases){
stats.tests += 1
await cases[c](case_assert.push(c)) }
await cases[c](case_assert.push(c), makeSkipTest()) }
// runtime...
stats.time += Date.now() - started