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", "name": "ig-test",
"version": "1.6.4", "version": "1.6.5",
"description": "experimental test runner....", "description": "experimental test runner....",
"main": "test.js", "main": "test.js",
"bin": { "bin": {

18
test.js
View File

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