mirror of
https://github.com/flynx/test.js.git
synced 2025-10-28 18:30:08 +00:00
better test sequencing...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
c139365cff
commit
7f1ead5c7c
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ig-test",
|
||||
"version": "1.5.0",
|
||||
"version": "1.5.1",
|
||||
"description": "experimental test runner....",
|
||||
"main": "test.js",
|
||||
"bin": {
|
||||
|
||||
18
test-test.js
18
test-test.js
@ -28,10 +28,9 @@ tests.Setups({
|
||||
return {setup: 'setup2'} },
|
||||
async: async function(assert){
|
||||
assert(true, 'setup')
|
||||
return {setup: 'async'} },
|
||||
return await {setup: 'async'} },
|
||||
})
|
||||
|
||||
|
||||
tests.Modifiers({
|
||||
sync: function(assert, setup){
|
||||
assert(setup, 'modifier')
|
||||
@ -40,7 +39,14 @@ tests.Modifiers({
|
||||
async: async function(assert, setup){
|
||||
assert(setup, 'modifier')
|
||||
setup.mod = 'async'
|
||||
return setup },
|
||||
return await setup },
|
||||
})
|
||||
|
||||
tests.Tests({
|
||||
async: async function(assert, setup){
|
||||
assert(setup, 'test')
|
||||
await setup
|
||||
assert.log(setup) },
|
||||
})
|
||||
|
||||
|
||||
@ -55,12 +61,6 @@ tests.Test('basic',
|
||||
assert.log(setup)
|
||||
})
|
||||
|
||||
tests.Tests({
|
||||
async: async function(assert, setup){
|
||||
assert(setup, 'test')
|
||||
assert.log(setup)
|
||||
},
|
||||
})
|
||||
|
||||
// a nested test set...
|
||||
tests.Case('nested',
|
||||
|
||||
35
test.js
35
test.js
@ -621,9 +621,9 @@ async function(spec, chain, stats){
|
||||
|
||||
var started = Date.now()
|
||||
// tests...
|
||||
var assert = Assert('[TEST]', stats, module.VERBOSE)
|
||||
chain_length != 1
|
||||
&& await Promise.all(object.deepKeys(tests)
|
||||
var queue =
|
||||
chain_length != 1 ?
|
||||
object.deepKeys(tests)
|
||||
.filter(function(t, i, l){
|
||||
return typeof(tests[t]) == 'function'
|
||||
// skip blank tests if we have other tests unless
|
||||
@ -646,7 +646,15 @@ async function(spec, chain, stats){
|
||||
.filter(function(s){
|
||||
return typeof(setups[s]) == 'function'
|
||||
&& (setup == '*' || setup == s) })
|
||||
.map(async function(s){
|
||||
.map(function(s){
|
||||
return [s, m, t] }) }) })
|
||||
.flat(2)
|
||||
: []
|
||||
// run the test queue...
|
||||
// NOTE: we are not running these via .map(..) to keep things in
|
||||
// sequence...
|
||||
var assert = Assert('[TEST]', stats, module.VERBOSE)
|
||||
for(var [s, m, t] of queue){
|
||||
// run the test...
|
||||
stats.tests += 1
|
||||
var _assert = assert.push(
|
||||
@ -654,22 +662,25 @@ async function(spec, chain, stats){
|
||||
// do not print blank pass-through ('-')
|
||||
// components...
|
||||
.filter(function(e){ return e != '-' }) )
|
||||
return tests[t](
|
||||
await tests[t](
|
||||
_assert,
|
||||
await modifiers[m](
|
||||
_assert,
|
||||
await setups[s](_assert))) }) }) })
|
||||
.flat(Infinity))
|
||||
await setups[s](_assert))) }
|
||||
|
||||
// cases...
|
||||
var assert = Assert('[CASE]', stats, module.VERBOSE)
|
||||
chain_length <= 1
|
||||
&& await Promise.all(Object.keys(cases)
|
||||
var queue =
|
||||
chain_length <= 1 ?
|
||||
Object.keys(cases)
|
||||
.filter(function(s){
|
||||
return typeof(cases[s]) == 'function'
|
||||
&& (setup == '*' || setup == s) })
|
||||
.map(function(c){
|
||||
: []
|
||||
var assert = Assert('[CASE]', stats, module.VERBOSE)
|
||||
for(var c of queue){
|
||||
stats.tests += 1
|
||||
return cases[c]( assert.push(c) ) }))
|
||||
await cases[c]( assert.push(c) ) }
|
||||
|
||||
// runtime...
|
||||
stats.time += Date.now() - started
|
||||
return stats }
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user