From e822179b108436344c701d270b8dbc947075fc40 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Wed, 31 Dec 2025 01:00:16 +0300 Subject: [PATCH] added ability to skip test from the stats... Signed-off-by: Alex A. Naanou --- package.json | 2 +- test.js | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8a60e66..a1178aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-test", - "version": "1.6.4", + "version": "1.6.5", "description": "experimental test runner....", "main": "test.js", "bin": { diff --git a/test.js b/test.js index 637f88a..e3f6db1 100644 --- a/test.js +++ b/test.js @@ -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